1

我使用以下命令将没有 Keras 的 TensorFlow 1 模型转换为 TFLite:

    converter = tf.lite.TFLiteConverter.from_session(sess, input_tensors=[my_input_tensor],
            output_tensors=[my_output_tensor])
    tflite_model = converter.convert()

输出保存成功,但是使用模型进行预测时,输出与常规TensorFlow模型的输出完全不同。这是我在 Python 中运行推理的方式:

interpreter = tf.lite.Interpreter(model_path=model_path)
interpreter.allocate_tensors()

input_details = interpreter.get_input_details()
output_details = interpreter.get_output_details()

print("input details", input_details)
print("output details", output_details)

interpreter.set_tensor(input_details[0]['index'], input_array.reshape(input_shape))

interpreter.invoke()

output_buff = interpreter.get_tensor(output_details[0]['index']).squeeze()

安慰:

input details [{'name': 'input_batch', 'index': 0, 'shape': array([  1, 606, 414,   1], dtype=int32), 'shape_signature': array([  1, 606, 414,   1], dtype=int32), 'dtype': <class 'numpy.float32'>, 'quantization': (0.0, 0), 'quantization_parameters': {'scales': array([], dtype=float32), 'zero_points': array([], dtype=int32), 'quantized_dimension': 0}, 'sparsity_parameters': {}}]
output details [{'name': 'Mul', 'index': 1, 'shape': array([  1, 505, 324,   1], dtype=int32), 'shape_signature': array([  1, 505, 324,   1], dtype=int32), 'dtype': <class 'numpy.float32'>, 'quantization': (0.0, 0), 'quantization_parameters': {'scales': array([], dtype=float32), 'zero_points': array([], dtype=int32), 'quantized_dimension': 0}, 'sparsity_parameters': {}}]

输出似乎是输入信号的副本或随机噪声。

我很感激帮助解决这个问题。

[更新]:我也尝试了先将图形冻结为pb文件的方法,但得到了相同的结果。

4

0 回答 0