如何通过 docker 运行 包含其模型的 tensorflow-serving?
How to run tensorflow-serving including its models by docker?
问题是,我想 运行 tensorflow-serving 包括它的模型 docker,但似乎
docker 将使 tensorflow-serving 无法加载文件夹。
在容器本身,它可以轻松加载模型:
tensorflow_model_server --port=9000 --model_name=1 --model_base_path=/models/
但是docker,它无法加载模型:
docker run --name tfx-test -p 8501:8501 -v "/models:/models" -e MODEL_NAME=5 -t tensorflow/serving
结果:
E tensorflow_serving/sources/storage_path/file_system_storage_path_source.cc:362] FileSystemStoragePathSource encountered a filesystem access error: Could not find base path /models/5 for servable 5
模型文件:
|--models
|-- 1
|-- assets
|-- saved_model.pb
`-- variables
|-- variables.data-00000-of-00002
|-- variables.data-00001-of-00002
`-- variables.index
将docker run
命令更改为:
docker run -p 8501:8501 --mount type=bind,\
source=/models/1,\
target=/models/my_model/1 \
-e MODEL_NAME=my_model -t tensorflow/serving
并且,您可以在以下位置查看您的模型元数据:http://localhost:8501/v1/models/my_model/metadata
(假设您是 运行 您来自 localhost
的 docker)
问题是,我想 运行 tensorflow-serving 包括它的模型 docker,但似乎
docker 将使 tensorflow-serving 无法加载文件夹。
在容器本身,它可以轻松加载模型:
tensorflow_model_server --port=9000 --model_name=1 --model_base_path=/models/
但是docker,它无法加载模型:
docker run --name tfx-test -p 8501:8501 -v "/models:/models" -e MODEL_NAME=5 -t tensorflow/serving
结果:
E tensorflow_serving/sources/storage_path/file_system_storage_path_source.cc:362] FileSystemStoragePathSource encountered a filesystem access error: Could not find base path /models/5 for servable 5
模型文件:
|--models
|-- 1
|-- assets
|-- saved_model.pb
`-- variables
|-- variables.data-00000-of-00002
|-- variables.data-00001-of-00002
`-- variables.index
将docker run
命令更改为:
docker run -p 8501:8501 --mount type=bind,\
source=/models/1,\
target=/models/my_model/1 \
-e MODEL_NAME=my_model -t tensorflow/serving
并且,您可以在以下位置查看您的模型元数据:http://localhost:8501/v1/models/my_model/metadata
(假设您是 运行 您来自 localhost
的 docker)