• 模型转换

    模型转换

    转换工具有两种:命令行工具和Python API

    TF2.0对模型转换工具发生了非常大的变化,推荐大家使用Python API进行转换,命令行工具只提供了基本的转化功能。转换后的原模型为 FlatBuffers 格式。 FlatBuffers 原来主要应用于游戏场景,是谷歌为了高性能场景创建的序列化库,相比Protocol Buffer有更高的性能和更小的大小等优势,更适合于边缘设备部署。

    转换方式有两种:Float格式和Quantized格式

    为了熟悉两种方式我们都会使用,针对Float格式的,先使用命令行工具 tflite_convert ,其跟随TensorFlow一起安装(见 一般安装步骤 )。

    在终端执行如下命令:

    1. tflite_convert -h

    输出结果如下,即该命令的使用方法:

    1. usage: tflite_convert [-h] --output_file OUTPUT_FILE
    2. (--saved_model_dir SAVED_MODEL_DIR | --keras_model_file KERAS_MODEL_FILE)
    3. --output_file OUTPUT_FILE
    4. Full filepath of the output file.
    5. --saved_model_dir SAVED_MODEL_DIR
    6. Full path of the directory containing the SavedModel.
    7. --keras_model_file KERAS_MODEL_FILE
    8. Full filepath of HDF5 file containing tf.Keras model.

    在 TensorFlow模型导出 中,我们知道TF2.0支持两种模型导出方法和格式SavedModel和Keras Sequential。

    SavedModel导出模型转换:

    1. tflite_convert --saved_model_dir=saved/1 --output_file=mnist_savedmodel.tflite

    Keras Sequential导出模型转换:

    1. tflite_convert --keras_model_file=mnist_cnn.h5 --output_file=mnist_sequential.tflite

    到此,已经得到两个TensorFlow Lite模型。因为两者后续操作基本一致,我们只处理SavedModel格式的,Keras Sequential的转换可以按类似方法处理。