首页 > 解决方案 > 如何将保存的模型转换为 tflite 文件?

问题描述

我想使用这个项目中的模型https://github.com/mrahtz/tensorflow-pos-tagger并将其转换为 tflite 文件,以便我可以在 Android 应用程序中使用它。

在生成检查点文件(数据、索引和元文件)后,我尝试使用此脚本将它们转换为 .pbtxt 文件。

import tensorflow as tf
from argparse import ArgumentParser

def main():
    parser = ArgumentParser()
    parser.add_argument('--checkpoint', type=str,
                        dest='checkpoint',
                        help='dir or .ckpt file to load checkpoint from',
                        metavar='CHECKPOINT', required=True)
    parser.add_argument('--model', type=str,
                        dest='model',
                        help='.meta for your model',
                        metavar='MODEL', required=True)
    parser.add_argument('--out-path', type=str,
                        dest='out_path',
                        help='model output directory',
                        metavar='MODEL_OUT', required=True)
    opts = parser.parse_args()
    tf.reset_default_graph()
    saver = tf.train.import_meta_graph(opts.model)
    builder = tf.saved_model.builder.SavedModelBuilder(opts.out_path)
    with tf.Session() as sess:
        # Restore variables from disk.
        saver.restore(sess, opts.checkpoint)
        print("Model restored.")
        builder.add_meta_graph_and_variables(sess,
                                       [tf.saved_model.tag_constants.SERVING],
                                       strip_default_attrs=False)
        builder.save(as_text=True)

if __name__ == '__main__':
    main()

在终端中执行此命令后

python export.py --checkpoint model.ckpt --model model.ckpt.meta --out-path ./export

我在名为 export 的项目中有另一个文件夹,其中包含变量文件夹和 saved_model.pbtxt。

然后我使用了这个命令:

tflite_convert --output_file=test.tflite --saved_model_dir=D:\Praksa-local\tensorflow-pos-tagger-master\export

我收到以下错误:

ValueError:SavedModel 的 SignatureDefs 中没有“serving_default”。可能的值为 ''。

有谁知道这样做的正确方法?我很难找到正确的答案。

标签: pythontensorflowtensorflow-lite

解决方案


推荐阅读