我是Tensorflow服务的新手,
我刚刚尝试使用this tutorial通过docker服务于Tensorflow并成功。
但是,当我尝试使用多个版本时,它仅提供最新版本。
有可能这样做吗?还是我需要尝试一些不同的东西?
答案 0 :(得分:4)
这需要一个ModelServerConfig,下一个docker镜像tensorflow / serving版本1.11.0(自2018年5月5日开始可用)将支持它。在此之前,您可以创建自己的docker映像,或使用here中所述的tensorflow / serving:nightly或tensorflow / serving:1.11.0-rc0。 有关如何实现多个模型的信息,请参见该线程。
另一方面,如果要启用单个模型的多个版本,则可以使用以下名为“ models.config”的配置文件:
model_config_list: {
config: {
name: "my_model",
base_path: "/models/my_model",
model_platform: "tensorflow",
model_version_policy: {
all: {}
}
}
}
此处“ model_version_policy:{all:{}}”使模型的每个版本可用。 然后运行docker:
docker run -p 8500:8500 8501:8501 \
--mount type=bind,source=/path/to/my_model/,target=/models/my_model \
--mount type=bind,source=/path/to/my/models.config,target=/models/models.config \
-t tensorflow/serving:nightly --model_config_file=/models/models.config
修改:
现在可以使用版本1.11.0,您可以从拉新图像开始:
docker pull tensorflow/serving
然后使用tensorflow / serving而不是tensorflow / serving:nightly运行上述docker映像。
答案 1 :(得分:1)
我找到了一种通过构建自己的docker映像来实现此目的的方法,该映像使用--model_config_file
选项而不是--model_name
和--model_base_path
。
所以我正在使用以下命令运行tensorflow服务。
docker run -p 8501:8501 -v {local_path_of_models.conf}:/models -t {docker_iamge_name}
当然,我也为多个模型编写了“ models.conf”。
编辑:
以下是我从原始docker文件中修改的内容。
原始版本:
tensorflow_model_server --port=8500 --rest_api_port=8501 \
--model_name=${MODEL_NAME} --model_base_path=${MODEL_BASE_PATH}/${MODEL_NAME} \
修改版本:
tensorflow_model_server --port=8500 --rest_api_port=8501 \
--model_config_file=${MODEL_BASE_PATH}/models.conf \