在 azureml 中获取本地工作区

Get local workspace in azureml

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

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

"message": "We could not find config.json in: [path] or in its parent directories. Please provide the full path to the config file or ensure that config.json exists in the parent directories."

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

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

workspace = Workspace(subscription_id, resource_group, workspace_name)

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

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

使用Workspace.from_config()方法:

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

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

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

ws = Workspace.get(name="myworkspace",subscription_id='<azure-subscription-id>',resource_group='myresourcegroup')

您使用的开发系统是什么? 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() 应该可以工作。

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

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

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

from azureml.core import Run
Run.get_context()
ws = run.experiment.workspace