python - 如何将新模型推向 tensorflow-serving?
问题描述
我需要一种使用Python 3将新训练的模型推送到运行tensorflow-serving的已部署容器的方法。
找到了 tfx 包(https://www.tensorflow.org/tfx/guide/pusher),但它只适用于python 2.7。
还发现这个问题指出存在这个功能:https://stackoverflow.com/questions/50052187/how-to-add-a-new-model-in-tensorflow-serving
但是我仍然缺乏关于如何使用Python 3部署新模型的良好指南。
解决方案
我创建了一个模型并将其保存在路径“/usr/local/google/home/abc/Jupyter_Notebooks/export”中。
然后,我将其提交给 Tensorflow Serving Docker Container 并推断该模型并得到结果。
要在命令提示符中运行的命令,用于实现上述说明,如下所示:
sudo docker run -d --name sb tensorflow/serving
sudo docker cp /usr/local/google/home/abc/Jupyter_Notebooks/export sb:/models/export
sudo docker commit --change "ENV MODEL_NAME export" sb rak_iris_container
sudo docker kill sb
sudo docker pull tensorflow/serving
sudo docker run -p 8501:8501 --mount type=bind,source=/usr/local/google/home/abc/Jupyter_Notebooks/export,target=/models/export -e MODEL_NAME=export -t tensorflow/serving &
saved_model_cli show --dir /usr/local/google/home/abc/Jupyter_Notebooks/export/1554294699 --all
curl -d '{"examples":[{"SepalLength":[5.1],"SepalWidth":[3.3],"PetalLength":[1.7],"PetalWidth":[0.5]}]}' \
-X POST http://localhost:8501/v1/models/export:classify
上述推论的输出是
{
"results": [[["0", 0.998091], ["1", 0.00190929], ["2", 1.46236e-08]]
]
}
使用下面提到的代码保存模型:
feature_spec = tf.feature_column.make_parse_example_spec(my_feature_columns)
serving_input_receiver_fn = tf.estimator.export.build_parsing_serving_input_receiver_fn(feature_spec)
export_dir = classifier.export_savedmodel('export', serving_input_receiver_fn)
print('Exported to {}'.format(export_dir))
上述命令的输出为:
导出到 b'/usr/local/google/home/abc/Jupyter_Notebooks/export/1554980806'
推荐阅读
- c# - 简单的注入器 - 注入 IHttpHandler
- android - 安装 apk 时提供程序崩溃
- automation - nightwatchjs 通过检查 css 属性值不工作来检查元素是否处于非活动状态
- javascript - 按key分组数据并返回一个包含另一个key的总和值的新对象
- java - 正则表达式模式未断言为真
- c# - c# 将 SQL 查询结果设置为图表
- android - 导航抽屉隐藏扩展活动的内容
- arrays - 反应为什么这个简单的数组映射函数没有返回任何东西?
- r - blogdown rss feed 损坏,链接没有域名
- reactjs - 如何将 OrgChart 插件与 React JS 集成/使用