0

我正在尝试在 azureml 中运行机器学习实验。

我不知道如何从控制脚本中获取工作区上下文。microsoft 文档中的此类示例使用 Workspace.from_config()。当我在控制脚本中使用它时,出现以下错误:

"message": "我们在 [path] 或其父目录中找不到 config.json。请提供配置文件的完整路径或确保 config.json 存在于父目录中。"

我也尝试过包括我的订阅 ID 和资源规格,如下所示:

subscription_id = 'id'
resource_group = 'name'
workspace_name = 'name'

workspace = Workspace(subscription_id, resource_group, workspace_name)

在这种情况下,我必须像在本地一样监控日志并在每次运行时进行身份验证。

如何从 azureml 的控制脚本中获取本地工作区?

4

3 回答 3

0

使用 Workspace.from_config() 方法:

工作区配置文件是一个 JSON 文件,它告诉 SDK 如何与你的 Azure 机器学习工作区进行通信。该文件名为 config.json,格式如下:

{"subscription_id": "<subscription-id>",
 "resource_group": "<resource-group>",
 "workspace_name": "<workspace-name>"}
  • 重要提示:此 JSON 文件必须位于包含 Python 脚本或 Jupyter Notebooks 的目录结构中。它可以位于同一目录、名为 .azureml 的子目录或父目录中。

或者,使用 get 方法加载现有工作区而不使用配置文件:(在您的情况下,您的代码缺少.get()

ws = Workspace.get(name="myworkspace",subscription_id='<azure-subscription-id>',resource_group='myresourcegroup')
于 2022-01-07T10:48:32.797 回答
0

您使用的开发系统是什么?AML 工作区或本地开发系统中的 DSVM?

如果它是您的本地,则使用它将配置文件写入路径下的项目根目录/.azureml/config.json

from azureml.core import Workspace

subscription_id = 'xxxx-xxxx-xxxx-xxxx-xxxx'
resource_group  = 'your_resource_group'
workspace_name  = 'your_workspace_name'

try:
   ws = Workspace(subscription_id = subscription_id, resource_group = 
   resource_group, workspace_name = workspace_name)
   ws.write_config()
   print('Library configuration succeeded')
except:
   print('Workspace not found')

否则,如果它是 DSVM,那么您已经准备就绪,Workspace.from_config()应该可以工作。

注意:您必须.config 在 AML studio 中查看您的用户名下的目录。

于 2022-01-10T23:16:02.463 回答
0

这 10 个月没有答案,现在他们进来了:)。我很久以前就想出了这个问题,但还没有来得及发布答案。这里是。

从训练脚本中,您可以从运行上下文中获取工作区,如下所示:

from azureml.core import Run
Run.get_context()
ws = run.experiment.workspace
于 2022-01-12T03:28:12.267 回答