首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Azure ML Notebook中的超参数调整(hyperdrive)期间,子运行的交互式登录

在Azure ML Notebook中的超参数调整(hyperdrive)期间,子运行的交互式登录
EN

Stack Overflow用户
提问于 2021-02-18 19:03:39
回答 1查看 74关注 0票数 0

我在Azure中创建了一个train.py脚本,它包含使用XGBoost的数据清理、争论和分类部分。然后,我创建了一个ipynb文件,通过调用train.py脚本进行超参数调优。

子运行一直要求我在每次运行时执行手动交互登录。请看图片。我做了很多次交互式登录,但每次它都会问我。

下面是ipynb文件中的代码:

代码语言:javascript
复制
subscription_id = 'XXXXXXXXXXXXXXXXXX'
resource_group = 'XXXXXXXXXXXXXXX'
workspace_name = 'XXXXXXXXXXXXXXX'

workspace = Workspace(subscription_id, resource_group, workspace_name)
myenv = Environment(workspace=workspace, name="myenv")

from azureml.core.conda_dependencies import CondaDependencies
conda_dep = CondaDependencies()

conda_dep.add_pip_package("numpy")
conda_dep.add_pip_package("pandas")
conda_dep.add_pip_package("nltk")
conda_dep.add_pip_package("sklearn")
conda_dep.add_pip_package("xgboost")

myenv.python.conda_dependencies = conda_dep

experiment_name = 'experiments_xgboost_hyperparams'
experiment = Experiment(workspace, experiment_name)

from azureml.core.compute import ComputeTarget, AmlCompute
from azureml.core.compute_target import ComputeTargetException

compute_cluster_name = 'shan'

try:
    compute_target = ComputeTarget(workspace=workspace, name = compute_cluster_name)
    print('Found the compute cluster')

except ComputeTargetException:
    compute_config = AmlCompute.provisioning_configuration(vm_size="STANDARD_DS3_V2", max_nodes=4)
    compute_target = ComputeTarget.create(workspace, compute_cluster_name, compute_config)
    compute_target.wait_for_completion(show_output=True)

early_termination_policy = BanditPolicy(slack_factor=0.01)

from azureml.train.hyperdrive import RandomParameterSampling
from azureml.train.hyperdrive import uniform, choice
ps = RandomParameterSampling( {
        'learning_rate': uniform(0.1, 0.9),
        'max_depth': choice(range(3,8)),
        'n_estimators': choice(300, 400, 500, 600)
    }
)

primary_metric_name="accuracy",
primary_metric_goal=PrimaryMetricGoal.MAXIMIZE



 from azureml.core import ScriptRunConfig
    script_run_config = ScriptRunConfig(source_directory='.', script='train.py', compute_target=compute_target, environment=myenv)
    # script_run_config.run_config.target = compute_target
    
    # Create a HyperDriveConfig using the estimator, hyperparameter sampler, and policy.
    hyperdrive_config = HyperDriveConfig(run_config=script_run_config,
                                        hyperparameter_sampling=ps,
                                        policy=early_termination_policy,
                                        primary_metric_name="accuracy",
                                        primary_metric_goal=PrimaryMetricGoal.MAXIMIZE,
                                        max_total_runs=10,
                                        max_concurrent_runs=4)

hyperdrive = experiment.submit(config=hyperdrive_config)

RunDetails(hyperdrive).show()
hyperdrive.wait_for_completion(show_output=True)

这会让我每次跑的时候都会问我交互登录的问题。

EN

回答 1

Stack Overflow用户

发布于 2021-02-20 19:34:10

您需要实现一种身份验证方法,以避免交互式身份验证。

这个问题来自下面这行:

代码语言:javascript
复制
workspace = Workspace(subscription_id, resource_group, workspace_name)

Azure ML SDK尝试仅根据其名称、订阅id和关联的资源组来访问Workspace。它不知道您是否有权访问它,这就是它要求您通过URL进行身份验证的原因。

我建议通过服务主体实现身份验证,您可以找到官方文档here

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66258663

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档