6

我正在尝试使用 Python 脚本向 Azure ML 提交实验。

正在初始化的环境使用自定义 Dockerfile。

env = Environment(name="test")
env.docker.base_image = None
env.docker.base_dockerfile = './Docker/Dockerfile'
env.docker.enabled = True

但是 DockerFile 需要一些COPY语句,但这些语句失败如下:

Step 9/23 : COPY requirements-azure.txt /tmp/requirements-azure.txt
COPY failed: stat /var/lib/docker/tmp/docker-builder701026190/requirements-azure.txt: no such file or directory

负责构建映像的 Azure 主机环境不包含 Dockerfile 所需的文件,这些文件存在于我启动 python 脚本的本地开发机器中。

我整天都在寻找一种将这些文件添加到环境中的方法,但没有成功。

下面是 Dockerfile 和提交实验的 python 脚本的摘录。

FROM mcr.microsoft.com/azureml/base:intelmpi2018.3-ubuntu16.04 as base
COPY ./Docker/requirements-azure.txt /tmp/requirements-azure.txt # <- breaks here

[...]

以下是我提交实验的方式:

from azureml.core.environment import Environment
from azureml.core import Workspace
from azureml.core.model import Model
from azureml.core import Workspace, Experiment
from azureml.core.compute import ComputeTarget

from azureml.core import Experiment, Workspace
from azureml.train.estimator import Estimator
import os

ws = Workspace.from_config(path='/mnt/azure/config/workspace-config.json')
env = Environment(name="test")
env.docker.base_image = None
env.docker.base_dockerfile = './Docker/Dockerfile'
env.docker.enabled = True
compute_target = ComputeTarget(workspace=ws, name='GRComputeInstance')
estimator = Estimator(
    source_directory='/workspace/',
    compute_target=compute_target,
    entry_script="./src/ml/train/main.py",
    environment_definition=env
)
experiment = Experiment(workspace=ws, name="estimator-test")
run = experiment.submit(estimator)
run.wait_for_completion(show_output=True, wait_post_processing=True)

任何想法?

4

2 回答 2

0

我认为您需要寻找“使用您自己的基础图像”,例如在 Azure 文档。要构建实际的 Docker 映像,您有两个选择:

  1. 在 Azure 构建服务器上构建。在这里,您需要将所有必需的文件与 Dockerfile 一起上传到构建环境。(或者,您可以考虑requirements-azure.txt通过 HTTP 使文件可用,以便构建环境可以从任何地方获取它。)
  2. 使用您自己的 Docker 安装在本地构建,并将最终映像上传到正确的 Azure 注册表。

这只是大致的轮廓,目前我无法给出更详细的建议。无论如何,希望它有所帮助。

于 2020-08-12T14:49:29.847 回答
0

我认为为您的项目设置 requirements.txt 的正确方法是Define an inference configuration

name: project_environment
dependencies:
    - python=3.6.2
    - scikit-learn=0.20.0
    - pip:
        # You must list azureml-defaults as a pip dependency
    - azureml-defaults>=1.0.45
    - inference-schema[numpy-support]

看到这个

于 2020-08-06T10:59:52.713 回答