如何像在C ++中那样使用Tensorflow的C_api重塑TF_Tensor *?
TensorShape inputShape({1,1,80,80});
Tensor inputTensor;
Tensor newTensor;
bool result = inputTensor->CopyFrom(newTensor, inputShape);
我没有看到使用张量流的c_api的类似方法。
答案 0 :(得分:1)
Tensorflow C API使用supervisor, student -> consultation-day
模型进行操作-将数据视为提供所需尺寸的平面原始数组。
步骤1 :分配(data,dims)
张量
看看new
(ref):
TF_AllocateTensor
这里:
TF_CAPI_EXPORT extern TF_Tensor* TF_AllocateTensor(TF_DataType,
const int64_t* dims,
int num_dims, size_t len);
:等效于here的TF_DataType
数据类型。TF
:与要分配的张量的尺寸对应的数组,例如dims
{1, 1, 80, 80}
:暗淡的长度(上面num_dims
)4
:reduce(dims,*):即1 * 1 * 80 * 80 * sizeof(DataType)= 6400 * sizeof(DataType)。第2步:复制数据
len
Here是我在写一个非常轻量的Tensorflow C-API包装器时做的一个项目的一些示例代码。
因此,实质上,您的重塑将涉及分配新的张量并将数据从原始张量复制到// Get the tensor buffer
auto buff = (DataType *)TF_TensorData(output_of_tf_allocate);
// std::memcpy() ...
。
Tensorflow C API不适合常规使用,因此更难学习且缺少文档。我通过实验得出了很多结论。有经验的开发人员有什么建议吗?