如何将保存的模型转换为tflite文件?

时间:2019-04-30 01:31:34

标签: python tensorflow tensorflow-lite

我想使用该项目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的项目中获得了另一个文件夹,其中包含变量folder和saved_model.pbtxt。

然后我使用了以下命令:

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

,我收到以下错误消息:

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

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

0 个答案:

没有答案