触发对Docker内部托管的Tensorflow服务的POST请求时出现连接被拒绝错误

时间:2018-12-05 11:00:38

标签: docker tensorflow tensorflow-serving

我需要借助tensorflow服务来提供多个tensorflow模型。 我在docker中编译了tensorflow服务。 接下来,我运行了成功运行的docker映像。

运行docker容器并托管多个模型的其余步骤是按照 下面的教程: https://medium.com/@brianalois/how-to-setup-tensorflow-serving-for-production-3cc2abf7efa

此操作所需的模型和配置文件由博客的作者在以下git存储库中提供: https://github.com/brianalois/tensorflow_serving_tutorial

我将配置文件和模型放在Docker容器中的以下位置:

root@72d81d939de5:/tensorflow-serving# ls
AUTHORS  CONTRIBUTING.md  LICENSE  README.md  RELEASE.md  WORKSPACE  configs  models  tensorflow_serving  third_party  tools

root@72d81d939de5:/tensorflow-serving# ls ./configs
models.conf

root@72d81d939de5:/tensorflow-serving# ls ./models 
iris  xor

root@72d81d939de5:/tensorflow-serving# ls ./models/iris
1  2

注意:文件夹1和2分别包含saved_models.pb文件,用于虹膜分类和虹膜预测模型。

如本教程所述,我在与本教程所述相同的端口上运行服务器:

tensorflow_model_server --port=8500 --rest_api_port=8501 --model_config_file=/tensorflow-serving/configs/models.conf

The log shows:
Successfully reserved resources to load servable {name: iris version: 1}

在配置文件中,托管模型的基本路径是这样定义的:

model_config_list: {
  config: {
    name:  "xor",
    base_path:  "/tensorflow-serving/models/xor",
    model_platform: "tensorflow",
    model_version_policy: {
        all: {}
    }
  },
  config: {
    name:  "iris",
    base_path:  "/tensorflow-serving/models/iris",
    model_platform: "tensorflow",
    model_version_policy: {
        all: {}
    }
  }
}

接下来,从docker容器外部,我对iris prdict模型触发了以下POST请求:

curl -X POST \
  http://localhost:8501/v1/models/iris/versions/2:predict \
  -d '{
 "signature_name": "predict-iris",
 "instances":[
  [5.1, 3.5, 1.4, 0.2]
 ]
}'

并收到以下错误:

curl: (7) Failed to connect to localhost port 8501: Connection refused

我不确定发生了什么;我也不太了解这个POST请求字符串 在这里使用:

http://localhost:8501/v1/models/iris/versions/2:predict

如果您指导我如何纠正此问题并从模型中获得预期的预测,这将非常有帮助。

0 个答案:

没有答案