前面介紹的Tensorflow serving啓動服務時,會將我們的模型服務放到服務器端口,那麼如果我們需要將多個模型同時放到該端口該怎麼做呢?例如我們需要將dog-cat分類模型、目標檢測模型同時放到端口上,用戶可以根據具體地址來訪問端口的不同模型,這時候就需要多模型部署了。
多模型部署與前面的模型部署步驟大致相同,就是多了一個多模型配置文件,這裏用我的模型做爲例子。我需要將三個模型部署到端口上,具體如下:
分別爲BK、HALF、MNIST,文件夾中爲模型的TF-Serving格式,可以具體看看怎麼轉換,這裏就不舉例了。
多模型配置文件(文件名model.config):
model_config_list: {
config: {
name: "bk",
base_path: "/models/bk",
model_platform: "tensorflow"
},
config: {
name: "mnist",
base_path: "/models/mnist",
model_platform: "tensorflow"
}
config: {
name: "half",
base_path: "/models/half",
model_platform: "tensorflow"
},
}
上面默認部署模型爲所有版本,版本就是這裏的BK等文件夾下的文件夾的名稱,可以爲多種版本,若想指定模型版本,可:
model_config_list: {
config: {
name: "bk",
base_path: "/models/bk",
model_platform: "tensorflow"
},
config: {
name: "mnist",
base_path: "/models/mnist",
model_platform: "tensorflow",
model_version_policy: {
specific: {
versions: 1,
versions: 2
}
}
config: {
name: "half",
base_path: "/models/half",
model_platform: "tensorflow",
model_version_policy: {
all: {
}
}
},
}
命令:
docker run --runtime=nvidia -p 8501:8501 \
--mount type=bind,\
source=/home/hj/smbshare/Huxx/TF-Serving/saved_models/BK,\
target=/models/bk \
--mount type=bind,\
source=/home/hj/smbshare/Huxx/TF-Serving/saved_models/MNIST,\
target=/models/mnist \
--mount type=bind,\
source=/home/hj/smbshare/Huxx/TF-Serving/saved_models/HALF,\
target=/models/half \
--mount type=bind,\
source=/home/hj/smbshare/Huxx/TF-Serving/model.config,\
target=/models/model.config \
-e NVIDIA_VISIBLE_DEVICES=1 \
-t tensorflow/serving:1.12.0-gpu \
--model_config_file=/models/model.config
注: 其實就是將三個模型分別通過--mount type=bind依次掛到端口,上面紅字部分就是model.config中對應的name以及base_path,並且需要將model.config掛到端口。 藍色字部分爲GPU設置。
最後,可以通過http地址訪問個模型,如:http://localhost:8500/v1/models/half、http://localhost:8500/v1/models/bk
https://blog.csdn.net/JerryZhang__/article/details/86516428
如果對你有用,點個贊 手動笑臉(*_*)