模型导出与部署Web与模型服务对接逻辑及模型导出

Posted ZSYL

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了模型导出与部署Web与模型服务对接逻辑及模型导出相关的知识,希望对你有一定的参考价值。

1. Web与模型服务对接逻辑

  • 目标
    • 了解线上使用、部署模型的完整流程
    • 掌握深度学习模型的部署架构
  • 应用

完整过程为:

用到的技术:

  • Tensorflow serving
  • grpc+protobuf
  • Flask

2. 模型导出

  • 应用tf.saved_model.simple_save完成模型导出

2.1 keras 模型进行TensorFlow导出

Tensorflow Serving 使用的模型必须已固定格式导出

from nets.ssd_net import SSD300
from keras import backend as K
import tensorflow as tf
import os
  • 使用tf.saved_model.simple_save工具进行导出
    • tf.saved_model.simple_save(
      session, # 会话
      export_dir, # 导出目录
      inputs, # 模型的输入
      outputs, # 模型的输出
      )

模型的结构以及运行结果

Tensor("Reshape_42:0", shape=(?, 7308, 4), dtype=float32) Tensor("truediv:0", shape=(?, 7308, 9), dtype=float32) Tensor("concat_2:0", shape=(?, 7308, 8), dtype=float32)

{'concat_3:0': <tf.Tensor 'concat_3:0' shape=(?, 7308, 21) dtype=float32>}

完整带出代码:

def save_model_for_serving(verion=1, path="./serving_model/commodity/"):
    # 2、导出模型过程
    # 路径+模型名字:"./model/commodity/"
    export_path = os.path.join(
        tf.compat.as_bytes(path),
        tf.compat.as_bytes(str(verion)))

    print("正在导出模型到 %s" % export_path)

    # 模型获取
    model = SSD300((300, 300, 3), num_classes=9)
    model.load_weights("./ckpt/fine_tuning/weights.13-5.18.hdf5")

    with K.get_session() as sess:
        tf.saved_model.simple_save(
            sess,
            export_path,
            inputs={'images': model.input},
            outputs={t.name: t for t in model.outputs}
        )


if __name__ == '__main__':
    save_model_for_serving(verion=1, path="./serving_model/commodity/")

加油!

感谢!

努力!

以上是关于模型导出与部署Web与模型服务对接逻辑及模型导出的主要内容,如果未能解决你的问题,请参考以下文章

模型导出与部署项目接口与百度机器人对接

模型导出与部署TF Serving 与 Web开启服务

模型导出与部署Web Server开启

PowerDesigner概念模型与物理模型相互转换及导出数据字典

PowerDesigner概念模型与物理模型相互转换及导出数据字典

Maya 创建多个模型动画并导出到Unity 流程