我正在尝试 tflite C++ API 来运行我构建的模型。我通过以下代码片段将模型转换为 tflite 格式:
import tensorflow as tf
converter = tf.lite.TFLiteConverter.from_keras_model_file('model.h5')
tfmodel = converter.convert()
open("model.tflite", "wb").write(tfmodel)
Run Code Online (Sandbox Code Playgroud)
我正在按照tflite 官方指南中提供的步骤进行操作,到目前为止我的代码如下所示
// Load the model
std::unique_ptr<tflite::FlatBufferModel> model = tflite::FlatBufferModel::BuildFromFile("model.tflite");
// Build the interpreter
tflite::ops::builtin::BuiltinOpResolver resolver;
std::unique_ptr<tflite::Interpreter> interpreter;
tflite::InterpreterBuilder builder(*model, resolver);
builder(&interpreter);
interpreter->AllocateTensors();
// Check interpreter state
tflite::PrintInterpreterState(_interpreter.get());
Run Code Online (Sandbox Code Playgroud)
这表明我的输入层的形状为 (1, 2050, 6)。为了从 C++ 提供输入,我遵循了这个线程,我的输入代码如下所示:
std::vector<std::vector<double>> tensor; // I filled this vector, (dims are 2050, 6)
int input = interpreter->inputs()[0];
float* input_data_ptr = interpreter->typed_input_tensor<float>(input);
for (int i = 0; …Run Code Online (Sandbox Code Playgroud)