我正在使用 VS Code 在 Azure 门户中提交机器学习试验。运行实验时,我收到以下错误:
运行失败:用户程序失败,出现模块未找到错误:没有名为"amlrun"的模块
这是代码结构:
.vscode (json 配置文件(
aml_config
脚本
----- amlrun.py(具有某些功能的脚本(
----- model_training.py(创建和保存模型的脚本(
这是配置文件:
{
"script": "model_training.py",
"framework": "Python",
"communicator": "None",
"target": "testazure",
"environment": {
"python": {
"userManagedDependencies": false,
"condaDependencies": {
"dependencies": [
"python=3.6.2",
"scikit-learn",
"numpy",
"pandas",
{
"pip": [
"azureml-defaults"
]
}
]
}
},
"docker": {
"baseImage": "mcr.microsoft.com/azureml/base:0.2.4",
"enabled": true,
"baseImageRegistry": {
"address": null,
"username": null,
"password": null
}
}
},
"history": {
"outputCollection": true,
"snapshotProject": false,
"directoriesToWatch": [
"logs"
]
}
}
我错过了什么吗? 谢谢
当训练脚本在 azure 中运行时,它无法找到所有本地导入,即amlrun.py
脚本。
提交给 azure 的训练作业首先使用文件生成 docker 映像并运行试验;但在这种情况下,扩展不包括amlrun.py
。
这可能是因为当你使用扩展提交训练作业时,打开的 Visual Studio 代码窗口未指向scripts
文件夹中。
摘自之前提出的 github 问题的回复之一:
扩展当前需要您正在处理的脚本 在 VS Code 中打开的文件夹中,而不是在子目录中打开的文件夹中。
要解决此问题,您可以执行以下任一操作:
-
您需要在文件夹而不是父目录中重新打开
scripts
Visual Studio Code。 -
将目录中的所有文件移动到
script
其父目录中。
如果你正在寻找更灵活的方法来提交训练作业和管理 aml - 可以使用适用于 Python 的 Azure 机器学习 SDK。
以下链接中提供了使用 SDK 管理过期的一些示例:
-
Scikit Learn 模型训练文档
-
基本 Pytorch 模型训练和部署示例存储库