在 C 中重塑张量
Reshaping Tensor in C
如何使用 Tensorflow 的 C_api 重塑 TF_Tensor*,就像在 C++ 中完成的那样?
TensorShape inputShape({1,1,80,80});
Tensor inputTensor;
Tensor newTensor;
bool result = inputTensor->CopyFrom(newTensor, inputShape);
我没有看到使用 tensorflow 的类似方法 c_api。
Tensorflow C API 使用 (data,dims)
模型运行 - 将数据视为提供所需维度的平面原始数组。
步骤 1:分配一个 new
张量
看看TF_AllocateTensor
(ref):
TF_CAPI_EXPORT extern TF_Tensor* TF_AllocateTensor(TF_DataType,
const int64_t* dims,
int num_dims, size_t len);
此处:
TF_DataType
:TF
相当于您需要的数据类型 here。
dims
:要分配的张量维度对应的数组,eg。 {1, 1, 80, 80}
num_dims
: dims 的长度(4
以上)
len
: reduce(dims, *): 即 1*1*80*80*sizeof(DataType) = 6400*sizeof(DataType).
步骤 2:复制数据
// Get the tensor buffer
auto buff = (DataType *)TF_TensorData(output_of_tf_allocate);
// std::memcpy() ...
Here 是我不久前写的一个非常轻量级的 Tensorflow C-API Wrapper.
项目中的一些示例代码
所以,基本上你的重塑将涉及分配你的新张量并将数据从原始张量复制到 buff
。
Tensorflow C API 不适合常规使用,因此更难学习 + 缺乏文档。我通过实验想通了很多。更有经验的开发人员有什么建议吗?
如何使用 Tensorflow 的 C_api 重塑 TF_Tensor*,就像在 C++ 中完成的那样?
TensorShape inputShape({1,1,80,80});
Tensor inputTensor;
Tensor newTensor;
bool result = inputTensor->CopyFrom(newTensor, inputShape);
我没有看到使用 tensorflow 的类似方法 c_api。
Tensorflow C API 使用 (data,dims)
模型运行 - 将数据视为提供所需维度的平面原始数组。
步骤 1:分配一个 new
张量
看看TF_AllocateTensor
(ref):
TF_CAPI_EXPORT extern TF_Tensor* TF_AllocateTensor(TF_DataType,
const int64_t* dims,
int num_dims, size_t len);
此处:
TF_DataType
:TF
相当于您需要的数据类型 here。dims
:要分配的张量维度对应的数组,eg。{1, 1, 80, 80}
num_dims
: dims 的长度(4
以上)len
: reduce(dims, *): 即 1*1*80*80*sizeof(DataType) = 6400*sizeof(DataType).
步骤 2:复制数据
// Get the tensor buffer
auto buff = (DataType *)TF_TensorData(output_of_tf_allocate);
// std::memcpy() ...
Here 是我不久前写的一个非常轻量级的 Tensorflow C-API Wrapper.
项目中的一些示例代码所以,基本上你的重塑将涉及分配你的新张量并将数据从原始张量复制到 buff
。
Tensorflow C API 不适合常规使用,因此更难学习 + 缺乏文档。我通过实验想通了很多。更有经验的开发人员有什么建议吗?