• Tensorflow Serving


    TensorFlow Serving 是一个用于机器学习模型 serving 的高性能开源库。它可以将训练好的机器学习模型部署到线上,使用 gRPC 作为接口接受外部调用。更加让人眼前一亮的是,它支持模型热更新与自动模型版本管理。这意味着一旦部署 TensorFlow Serving 后,你再也不需要为线上服务操心,只需要关心你的线下模型训练。

    export_path_base = sys.argv[-1]#导出的目录
    export_path = os.path.join(
          compat.as_bytes(export_path_base),
          compat.as_bytes(str(FLAGS.model_version)))#model_version明确了保存的模型的版本
    print 'Exporting trained model to', export_path
    builder = tf.saved_model.builder.SavedModelBuilder(export_path)#如果目录不存在的话,将会创建目录
    builder.add_meta_graph_and_variables(#此方法导入graph的信息以及变量
          sess, [tag_constants.SERVING],#标签名可以自定义,在之后载入模型的时候,需要根据这个标签名去查找对应的MetaGraphDef,找不到就会报RuntimeError。标签也可以选用系统定义好的参数,如tf.saved_model.tag_constants.SERVING与tf.saved_model.tag_constants.TRAINING。
          signature_def_map={
               'predict_images':
                   prediction_signature,
               signature_constants.DEFAULT_SERVING_SIGNATURE_DEF_KEY:
                   classification_signature,
          },
          legacy_init_op=legacy_init_op)
    builder.save()

    sess是Tensorflow session含有被导出的被训练的模型。

    tags是标签化的模型,使用预定义的SavedModel tag constants.

    signature_def_map user-supplied key: tensorflow::SignatureDef 明确了什么类型的模型被导出,什么类型的input/output tensors 被绑定,在inference的时候。

    使用signature_def_utils.build_signature_def()去建立predict_signature 和classification_signature.

    tf.saved_model.utils.build_tensor_info
    tf.saved_model.signature_def_utils.build_signature_def

    使用tf.saved_model.loader.load方法可以载入模型。

    关于SignatureDef我的理解是,它定义了一些协议,对我们所需的信息进行封装,我们根据这套协议来获取信息,从而实现创建与使用模型的解耦。

    下载完Tensorflow Serving,编译的命令:

    bazel build -c opt //tensorflow_serving/model_servers:tensorflow_model_server

    模型服务化,后边为保存模型的目录
    bazel-bin/tensorflow_serving/model_servers/tensorflow_model_server --port=9000 --model_name=mnist --model_base_path=/models/mnist_model/
     
  • 相关阅读:
    Mybatis中的like模糊查询
    Cookie
    架构师的自我修养
    微服务要面临的问题
    为啥要去IOE——分布式架构的由来
    分层架构设计
    如何选开源协议
    中国互联网20年简史
    2018第27周总结
    保住本金,安全第一
  • 原文地址:https://www.cnblogs.com/qniguoym/p/7919406.html
Copyright © 2020-2023  润新知