在我们公司,我使用 Azure ML,但遇到以下问题。我用 PyTorch 估计器类指定一个conda_requirements.yaml文件,就像这样(...是占位符,所以我不必输入所有内容):
from azureml.train.dnn import PyTorch
est = PyTorch(source_directory=’.’, script_params=..., compute_target=..., entry_script=..., conda_dependencies_file_path=’conda_requirements.yaml’, environment_variables=..., framework_version=’1.1’)
conda_requirements.yaml (pip 部分的缩短版本)如下所示:
dependencies:
- conda=4.5.11
- conda-package-handling=1.3.10
- python=3.6.2
- cython=0.29.10
- scikit-learn==0.21.2
- anaconda::cloudpickle==1.2.1
- anaconda::cffi==1.12.3
- anaconda::mxnet=1.1.0
- anaconda::psutil==5.6.3
- anaconda::pip=19.1.1
- anaconda::six==1.12.0
- anaconda::mkl==2019.4
- conda-forge::openmpi=3.1.2
- conda-forge::pycparser==2.19
- tensorboard==1.13.1
- tensorflow==1.13.1
- pip:
- torch==1.1.0
- torchvision==0.2.1
这在 Azure 上成功构建。现在为了在这种情况下重用生成的 docker 映像,我使用custom_docker_image
参数传递给
from azureml.train.estimator import Estimator
est = Estimator(source_directory=’.’, script_params=..., compute_target=..., entry_script=..., custom_docker_image=’<container registry name>.azurecr.io/azureml/azureml_c3a4f...’, environment_variables=...)
但是现在 Azure 似乎以某种方式再次重建了图像,当我运行实验时它无法安装 Torch。所以它似乎只安装了 conda 依赖项而不是 pip 依赖项,但实际上我不希望 Azure 重建映像。我能以某种方式解决这个问题吗?
我试图以某种方式从我的 Docker 文件构建一个 docker 映像,然后添加到注册表中。我可以进行 az login 并根据https://docs.microsoft.com/en-us/azure/container-registry/container-registry-authentication我也应该能够进行 acr 登录和推送。这不起作用。即使使用来自
az acr credential show –name <container registry name>
然后做一个
docker login <container registry name>.azurecr.io –u <username from credentials above> -p <password from credentials above>
不起作用。即使我使用了错误消息,也需要身份验证
az login
成功地。除了如何在使用 Azure ML 时重用 docker 映像之外,如果有人可以向我解释这一点,我也会很高兴。谢谢!