我有一个以shape [1, 128, 1024, 2]为输入的TensorFlow模型。我想用TensorflowLite C应用程序接口在这个模型上运行推断。
tensorflow/lite/c/c_api.h中的示例代码显示了如何将输入提供给模型:
std::vector<float> inputBuffer(1 * 128 * 1024 * 2);
// populate input buffer
// ...
TfLiteTensor *inputTensor = TfLiteInterpreterGetInputTensor(interpreter, 0);
TfLiteStatus status = TfLiteTensorCopyFromBuffer(inputTensor, inputBuffer.data(), inputBuffer.size() * sizeof(float));现在的问题是如何正确地填充输入缓冲区。
假设给我一个数组float inputArray[1][128][1024][2],我如何正确地将这个数组展平为TensorflowLite可以理解的一维向量?
发布于 2021-01-27 11:01:55
您不需要展平该数组,只需将inputBuffer.data()更改为数据指针即可。TFLite模型中的输入张量具有形状信息(1,128,1024,2)。因此,它将能够正确地理解您的数组。
https://stackoverflow.com/questions/65906452
复制相似问题