Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker 当使用自定义容器进行预测时,如何在统一AI平台上访问模型端点的工件?_Docker_Tensorflow_Google Cloud Platform_Google Cloud Ml - Fatal编程技术网

Docker 当使用自定义容器进行预测时,如何在统一AI平台上访问模型端点的工件?

Docker 当使用自定义容器进行预测时,如何在统一AI平台上访问模型端点的工件?,docker,tensorflow,google-cloud-platform,google-cloud-ml,Docker,Tensorflow,Google Cloud Platform,Google Cloud Ml,由于VPC的某些限制,我不得不使用自定义容器对Tensorflow上训练的模型进行预测。根据文档要求,我使用Tensorflow服务创建了一个HTTP服务器。用于生成映像的Dockerfile如下所示: FROM tensorflow/serving:2.3.0-gpu # Set where models should be stored in the container ENV MODEL_BASE_PATH=/models RUN mkdir -p ${MODEL_BASE_PATH}

由于VPC的某些限制,我不得不使用自定义容器对Tensorflow上训练的模型进行预测。根据文档要求,我使用Tensorflow服务创建了一个HTTP服务器。用于生成映像的Dockerfile如下所示:

FROM tensorflow/serving:2.3.0-gpu

# Set where models should be stored in the container
ENV MODEL_BASE_PATH=/models
RUN mkdir -p ${MODEL_BASE_PATH}

# copy the model file
ENV MODEL_NAME=my_model
COPY my_model /models/my_model

EXPOSE 5000

EXPOSE 8080

CMD ["tensorflow_model_server", "--rest_api_port=8080", "--port=5000", "--model_name=my_model", "--model_base_path=/models/my_model"]
其中
my\u model
包含名为
1/
的文件夹中的
已保存的\u model
。然后我将容器图像推送到Google容器注册中心

现在我想将
模型工件
传递给这个定制容器,这样我就不必每次训练新模型时都
构建
推送
一个新的docker映像。但是,在统一AI平台上创建
模型时,我无法从我的
Dockerfile
中找到如何访问这个新模型(保存在云存储桶中)

根据所述文件,方法如下:

FROM tensorflow/serving:2.3.0-gpu

# Set where models should be stored in the container
ENV MODEL_BASE_PATH=/models
RUN mkdir -p ${MODEL_BASE_PATH}

# copy the model file
ENV MODEL_NAME=my_model
COPY my_model /models/my_model

EXPOSE 5000

EXPOSE 8080

CMD ["tensorflow_model_server", "--rest_api_port=8080", "--port=5000", "--model_name=my_model", "--model_base_path=/models/my_model"]
但是,如果通过指定
artifactUri
字段,则容器必须在 它开始运行。当AI平台启动容器时,它会设置
AIP\u STORAGE\u URI
环境变量,用于 以
gs://
开头。您可以下载容器的entrypoint命令 此URI为访问模型而指定的目录 人工制品

但是,如何将
入口点
重写到Docker映像中,以便它读取
AIP\u STORAGE\u URI
变量

指向基本映像的链接是tensorflow/serving:2.3.0-gpu

任何帮助都将不胜感激。

在中,说明了Vertex AI创建并管理在创建模型时传递的模型工件的副本。Vertex AI管理的模型工件存储桶的URI存储在环境变量中。要从这个URI访问模型工件,可以按如下方式编写
ENTRYPOINT
命令

ENTRYPOINT tensorflow_model_server --rest_api_port=8080 --port=5000 --model_name=$MODEL_NAME --model_base_path=$AIP_STORAGE_URI
此处使用
ENTRYPOINT
命令的shell形式,因为需要访问
AIP\u STORAGE\u URI
环境变量。可以找到有关该命令用法的更多信息