// newTensorFromC converts from a C.TF_Tensor to a Tensor. func newTensorFromC(ct *C.TF_Tensor) *Tensor { t := &Tensor{dt: DataType(C.TF_TensorType(ct))} numDims := int(C.TF_NumDims(ct)) for i := 0; i < numDims; i++ { t.shape = append(t.shape, int64(C.TF_Dim(ct, C.int(i)))) } b := make([]byte, int(C.TF_TensorByteSize(ct))) if len(b) > 0 { C.memcpy(unsafe.Pointer(&b[0]), C.TF_TensorData(ct), C.size_t(len(b))) } t.buf = bytes.NewBuffer(b) return t }
// DataType returns the scalar datatype of the Tensor. func (t *Tensor) DataType() DataType { return DataType(C.TF_TensorType(t.c)) }