这里必须吐槽一下官网的教程示例,重复啰嗦就算了,还杂乱无章。个人整理建议流程。
走到这一步流程的同学,我相信,怎么样去训练模型和保存模型肯定已经不是什么问题了。
关于模型保存:
平时训练用于保存模型 ,顾虑占用空间方面,都会选择 只保存 参数的方式。但是想要部署tensorflow-serving,让serving加载模型,则必须保存模型的所有数据,因此采用另外一种模型保存方式:tf.saved_model.save( model ,’ 模型保存路径不需要写模型名’) ,相对应的加载模型函数为:tf.saved_model.load( ‘ 文件夹路径’) 保存模型 生成如下文件夹:
文件夹说明:文件夹1 为后面模型的版本号,可以自定义,并不是url中的的v1,默认情况下,会加载最高版本的模型。variables为所有参数的序列化数据,saved_model.pb 为网络模型结构
到此为止,模型的保存已经完毕!!!
下一步,安装docker,这里不再赘述。要使用tensorflow serving 最简单的方式肯定是使用docker部署serving。
docker pull tensorflow/serving 拉取serving镜像
启用服务:
docker run -p 8555:8501 --name dog_cat -v /home/duanjinfu/PycharmProjects/DL_AND_ML/tf20/model/:/models/dogcat -e MODEL_NAME=dogcat tensorflow/serving
参数说明:
-p 端口映射,8501为镜像内部定义的向外部暴露的用于调用rest api的端口 将docker容器中的8501端口映射到本地8555端口。
–name 指定当前容器的name值
-v 文件夹映射,将本地的/home/duanjinfu/PycharmProjects/DL_AND_ML/tf20/model/ 映射到 容器中的/models/dogcat