首页 > 解决方案 > 获取 curl:(52) 尝试将 curl 命令发送到运行 AutoML 模型的 docker 的 http 地址时来自服务器的空回复

问题描述

我正在尝试将预测请求作为 JSON 发送到在 docker 容器上运行的 AutoML 模型的 docker 映像。我已从 AutoML UI 导出图像并将其存储在 Google Cloud Storage 中。

我正在运行以下命令来启动 docker 映像。


    CPU_DOCKER_GCS_PATH="gcr.io/automl-vision-ondevice/gcloud-container-1.12.0:latest"
    YOUR_MODEL_PATH="gs://../../saved_model.pb"
    PORT=8501
    CONTAINER_NAME="my_random_name"


    sudo docker run --rm --name ${CONTAINER_NAME} -p ${PORT}:8501 -v ${YOUR_MODEL_PATH}:/tmp/mounted_model/0001 -t ${CPU_DOCKER_GCS_PATH}

当我运行此命令时,我收到以下错误,但程序运行。

2019-05-09 11:29:06.810470:E tensorflow_serving/sources/storage_path/file_system_storage_path_source.cc:369] FileSystemStoragePathSource 遇到文件系统访问错误:找不到可服务默认值的基本路径 /tmp/mounted_model/

我正在运行以下命令来发送预测请求。


    curl -d  @/home/arkanil/saved_model/cloud_output.json -X POST http://localhost:8501/v1/models/default:predict

这将返回 curl: (52) 来自服务器的空回复。

我试图按照下面提到的谷歌文档中写的步骤进行操作。

https://cloud.google.com/vision/automl/docs/containers-gcs-tutorial#install-docker https://docs.docker.com/install/linux/docker-ce/debian/

以 curl 形式获取输出:(52)来自服务器的空回复。

预期结果应该是一个 JSON 文件,描述了在 docker 中运行的 AutoML 模型的预测数字。

标签: jsondockerhttpgoogle-cloud-platformgoogle-cloud-automl

解决方案


似乎您正在尝试在谷歌存储中使用模型的传递路径运行。您应该saved_model.pb从 GS 下载到本地计算机并将其路径传递给YOUR_MODEL_PATH变量。

下载模型使用: gsutil cp ${YOUR_MODEL_PATH} ${YOUR_LOCAL_MODEL_PATH}/saved_model.pb


推荐阅读