我已经训练了Tensorflow对象检测模型。我正在尝试使用docker上的tensorflow服务映像进行REST请求。 (遵循https://github.com/tensorflow/serving的指示)
TESTDATA="$(pwd)/serving/tensorflow_serving/servables/tensorflow/testdata/"
docker run -t --rm -p 8501:8501 \
-v "$TESTDATA/my_model:/models/work_place_safety" \
-e MODEL_NAME=work_place_safety \
tensorflow/serving &
$ C:\ Program Files \ Docker \ Docker \ Resources \ bin \ docker.exe:来自守护程序的错误响应:挂载被拒绝: 源路径“ C:/ Users / Desktop / models / serving / tensorflow_serving / servables / tensorflow / testdata / saved_model_work_place_safety; C” 不存在,Docker也不知道。 参见'C:\ Program Files \ Docker \ Docker \ Resources \ bin \ docker.exe运行--help'。
我想知道为什么它在源路径的末尾包含“; C” 并引发错误。
非常感谢您的帮助。
谢谢
答案 0 :(得分:1)
通过在/
中的$
之前添加Git bash
解决了该问题。
docker run -t --rm -p 8501:8501 \
-v /$TESTDATA/my_model:/models/my_model \
-e MODEL_NAME=my_model \
tensorflow/serving &
答案 1 :(得分:0)
据我了解,此错误可能有两个原因。
您已经直接从Github克隆了TF Serving Repo,并且您正在使用$TESTDATA/my_model
作为源文件。路径$(pwd)/serving/tensorflow_serving/servables/tensorflow/testdata/
您可能已经保存了自己的模型,名称为“ my_model” ,并将其放置在$TESTDATA
路径中。在这种情况下,您需要将这些更改提交给Docker,以便服务器理解。将我们的更改提交给docker的代码如下所示:
sudo docker run -d --name sb tensorflow/serving
sudo docker cp /C:/Users/Desktop/models/serving/tensorflow_serving/servables/tensorflow/testdata/my_model sb:/models/work_place_safety
sudo docker commit --change "ENV MODEL_NAME my_model" sb Ashwini_container
sudo docker kill sb
sudo docker pull tensorflow/serving
sudo docker run -p 8501:8501 --mount type=bind,source=/C:/Users/Desktop/models/serving/tensorflow_serving/servables/tensorflow/testdata/my_model,target=/models/work_place_safety -e MODEL_NAME=export -t tensorflow/serving &
有关更多详细信息,您可以参考the link