首页 > 解决方案 > 在 docker 环境中运行 AzureML Estimator 时缺少依赖项

问题描述

场景描述

我正在尝试向 AzureML 提交一个训练脚本(想使用 AmlCompute,但我首先在本地启动/测试,以进行调试)。

train.py我使用的脚本使用了自定义包 ( arcus.ml),我相信我已经指定了正确的设置和依赖项,但仍然出现错误:

User program failed with ModuleNotFoundError: No module named 'arcus.ml'

代码和复制

这是我拥有的python代码:

name='test'
script_params = {
    '--test-par': 0.2
}

est = Estimator(source_directory='./' + name,
                   script_params=script_params,
                   compute_target='local',
                   entry_script='train.py',
                   pip_requirements_file='requirements.txt',
                   conda_packages=['scikit-learn','tensorflow', 'keras'])

run = exp.submit(est)
print(run.get_portal_url())

这是test目录中的(完全简化的)train.py 脚本:

from arcus.ml import dataframes as adf
from azureml.core import Workspace, Dataset, Datastore, Experiment, Run

# get hold of the current run
run = Run.get_context()
ws = run.get_environment()

print('training finished')

这是我的 requirements.txt 文件

arcus-azureml
arcus-ml
numpy
pandas
azureml-core
tqdm
joblib
scikit-learn
matplotlib
tensorflow
keras

日志

在运行的日志文件中,我可以看到这一部分,所以似乎无论如何都在安装外部模块。

Collecting arcus-azureml
  Downloading arcus_azureml-1.0.3-py3-none-any.whl (3.1 kB)
Collecting arcus-ml
  Downloading arcus_ml-1.0.6-py3-none-any.whl (2.1 kB)

标签: pythonazure-machine-learning-service

解决方案


可能是安装 arcus-ml 1.0.6 车轮存在问题,就像 Anders 指出的那样,它似乎没有任何代码。您可以尝试使用早期版本 arcus-ml==1.0.5 吗?


推荐阅读