我是Tensorflow服务的新手,
我刚试过Tensorflow通过docker与this tutorial服务并成功。
但是,当我尝试使用多个版本时,它只提供最新版本。
有可能吗?或者我需要尝试不同的东西吗?
这需要一个ModelServerConfig,它将受到下一个docker image tensorflow / serve release 1.11.0的支持(自5月2018年起可用)。在此之前,您可以创建自己的泊坞窗图像,或使用tensorflow / serving:nightly或tensorflow / serving:1.11.0-rc0,如here所述。请参阅该线程以了解如何实现多个模型。
另一方面,如果您想要启用单个模型的多个版本,则可以使用以下名为“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 / serve而不是tensorflow / serving运行docker image,如上所示:nightly。
我找到了一种方法来实现这一点,建立我自己的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 \