TensorFlow Lite

TensorFlow Lite

https://tf.wiki/zh/deployment/lite.html

请教现在想将 TensorFlow Lite for Microcontrollers 移植到一个新的 MCU 上,参考了 https://github.com/tensorflow/tensorflow/blob/master/tensorflow/lite/micro/README.md#how-to-port-tensorflow-lite-micro-to-a-new-platform
但编译成功 micro_speech 后,但因为不是 linux 系统,不知道如何放入裸系统中。

请问一下这段代码:

    converter = tf.lite.TFLiteConverter.from_saved_model ('saved/1')
    converter.optimizations = [tf.lite.Optimize.DEFAULT]
    tflite_quant_model = converter.convert ()
    open ("mnist_savedmodel_quantized.tflite", "wb").write (tflite_quant_model)

为什么会报错

  raise ValueError ("No ConcreteFunction is specified.")
ValueError: No ConcreteFunction is specified.

使用的环境为:

tensorflow==2.0.0
tensorflow-estimator==2.0.1
tensorflow-hub==0.8.0

打开 site-packages/tensorflow/lite/python/lite.py 文件发现其实是 from_saved_model 的时候构造_funcs 为空,不太清楚里面的机制,这里请教下一哎。

因为转的是 graphdef 格式,需要其他命令。

可以在如下网址看下:

https://tensorflow.google.cn/lite/convert/cmdline_examples?hl=zh-cn#convert_a_tensorflow_graphdef_

https://tensorflow.google.cn/lite/convert/cmdline_examples?hl=zh-cn#convert_a_tensorflow_graphdef_for_quantized_inference_

或者,找到 saved_model 模型

1 Like

你好,我在使用 TFLiteConverter.from_saved_model 时遇到一个奇怪的问题

tensorflow.lite.python.convert.ConverterError: :0: error: loc (“gru/gru_cell/bias”): is not immutable, try running tf-saved-model-optimize-global-tensors to prove tensors are immutable

:0: note: loc (“gru/gru_cell/bias”): see current operation: “tf_saved_model.global_tensor”() {is_mutable, sym_name = “gru/gru_cell/bias”, type = tensor<2x384xf32>, value = dense<“很长,就删掉了”> : tensor<2x384xf32>} : () -> ()

模型有调用 GRU 单元,但是之前的训练和测试都没有问题,是和 TFlite 有关吗?版本是 tensorflow2.2,python3.7