python - ModelErrorResponseException:未经授权的 Azure ML 授权错误
问题描述
成功运行训练估计器并在 azure ml 笔记本中进行实验后,尝试注册模型时出现未经授权的错误。当我查看 azure 门户中的估算器或模型选项卡时,我还看到顶部弹出一个未经授权的栏。
这似乎可能是资源组问题,但我只有一个资源组。以前有人遇到过这个问题吗?
实验成功:
from azureml.core.experiment import Experiment
script_params = {
# '--num_epochs': 3,
'--output_dir': './outputs'
}
estimator = PyTorch(source_directory=os.path.join(os.getcwd(), 'Estimator'),
script_params=script_params,
compute_target=compute_target,
entry_script='train.py',
use_gpu=True,
pip_packages=['pillow==5.4.1', 'torch', 'numpy'])
experiment_name = 'pytorch-rnn-generator'
experiment = Experiment(ws, name=experiment_name)
run = experiment.submit(estimator)
run.wait_for_completion(show_output=True)
型号注册:
model = run.register_model(model_name='rnn-tv-script-gen', model_path='outputs/')
堆栈跟踪:
ModelErrorResponseException Traceback (most recent call last)
<ipython-input-6-178d7ee9830a> in <module>
1 from azureml.core.model import Model
2
----> 3 model = run.register_model(model_name='rnn-tv-script-gen', model_path='outputs/')
4
5 servive = Model.deploy(ws,
/anaconda/envs/azureml_py36/lib/python3.6/site-packages/azureml/core/run.py in register_model(self, model_name, model_path, tags, properties, model_framework, model_framework_version, description, datasets, sample_input_dataset, sample_output_dataset, resource_configuration, **kwargs)
1988 model_name, model_path, tags, properties, model_framework, model_framework_version,
1989 description=description, datasets=datasets, unpack=False, sample_input_dataset=sample_input_dataset,
-> 1990 sample_output_dataset=sample_output_dataset, resource_configuration=resource_configuration, **kwargs)
1991
1992 def _update_dataset_lineage(self, datasets):
/anaconda/envs/azureml_py36/lib/python3.6/site-packages/azureml/_run_impl/run_history_facade.py in register_model(self, model_name, model_path, tags, properties, model_framework, model_framework_version, asset_id, sample_input_dataset, sample_output_dataset, resource_configuration, **kwargs)
386 artifacts,
387 metadata_dict=metadata_dict,
--> 388 run_id=self._run_id)
389 asset_id = asset.id
390 else:
/anaconda/envs/azureml_py36/lib/python3.6/site-packages/azureml/_restclient/assets_client.py in create_asset(self, model_name, artifact_values, metadata_dict, project_id, run_id, tags, properties)
50 "meta": metadata_dict,
51 "CreatedTime": created_time}
---> 52 return self._execute_with_workspace_arguments(self._client.asset.create, payload)
53
54 def get_assets_by_run_id_and_name(self, run_id, name):
/anaconda/envs/azureml_py36/lib/python3.6/site-packages/azureml/_restclient/workspace_client.py in _execute_with_workspace_arguments(self, func, *args, **kwargs)
69
70 def _execute_with_workspace_arguments(self, func, *args, **kwargs):
---> 71 return self._execute_with_arguments(func, copy.deepcopy(self._workspace_arguments), *args, **kwargs)
72
73 def _execute_with_arguments(self, func, args_list, *args, **kwargs):
/anaconda/envs/azureml_py36/lib/python3.6/site-packages/azureml/_restclient/workspace_client.py in _execute_with_arguments(self, func, args_list, *args, **kwargs)
85 return self._call_paginated_api(func, *args_list, **kwargs)
86 else:
---> 87 return self._call_api(func, *args_list, **kwargs)
88 except ErrorResponseException as e:
89 raise ServiceException(e)
/anaconda/envs/azureml_py36/lib/python3.6/site-packages/azureml/_restclient/clientbase.py in _call_api(self, func, *args, **kwargs)
224 return AsyncTask(future, _ident=ident, _parent_logger=self._logger)
225 else:
--> 226 return self._execute_with_base_arguments(func, *args, **kwargs)
227
228 def _call_paginated_api(self, func, *args, **kwargs):
/anaconda/envs/azureml_py36/lib/python3.6/site-packages/azureml/_restclient/clientbase.py in _execute_with_base_arguments(self, func, *args, **kwargs)
277 total_retry = 0 if self.retries < 0 else self.retries
278 return ClientBase._execute_func_internal(
--> 279 back_off, total_retry, self._logger, func, _noop_reset, *args, **kwargs)
280
281 @classmethod
/anaconda/envs/azureml_py36/lib/python3.6/site-packages/azureml/_restclient/clientbase.py in _execute_func_internal(cls, back_off, total_retry, logger, func, reset_func, *args, **kwargs)
292 return func(*args, **kwargs)
293 except Exception as error:
--> 294 left_retry = cls._handle_retry(back_off, left_retry, total_retry, error, logger, func)
295
296 reset_func(*args, **kwargs) # reset_func is expected to undo any side effects from a failed func call.
/anaconda/envs/azureml_py36/lib/python3.6/site-packages/azureml/_restclient/clientbase.py in _handle_retry(cls, back_off, left_retry, total_retry, error, logger, func)
341 back_off = DEFAULT_503_BACKOFF
342 elif error.response.status_code < 500:
--> 343 raise error
344 elif not isinstance(error, RETRY_EXCEPTIONS):
345 raise error
/anaconda/envs/azureml_py36/lib/python3.6/site-packages/azureml/_restclient/clientbase.py in _execute_func_internal(cls, back_off, total_retry, logger, func, reset_func, *args, **kwargs)
290 while left_retry >= 0:
291 try:
--> 292 return func(*args, **kwargs)
293 except Exception as error:
294 left_retry = cls._handle_retry(back_off, left_retry, total_retry, error, logger, func)
/anaconda/envs/azureml_py36/lib/python3.6/site-packages/azureml/_restclient/operations/asset_operations.py in create(self, subscription_id, resource_group_name, workspace, asset, custom_headers, raw, **operation_config)
88
89 if response.status_code not in [200]:
---> 90 raise models.ModelErrorResponseException(self._deserialize, response)
91
92 deserialized = None
ModelErrorResponseException: Unauthorized
解决方案
推荐阅读
- angular - 离开组件后的角度禁用按钮
- php - 无法从网址更新
- python - 获取已解析日期对象的当前日期格式
- python - 我怎样才能让 matplotlib 稍微移动重叠曲线,这样它们就不会相互隐藏?
- jquery - 在特定的 html 页面上阻止检查元素
- php - 为 Laravel 分页链接添加属性
- php - 使用 file_get_contents 和 get_bloginfo 时如何解决“无法打开流:连接超时...”?
- reactjs - 反应本机自定义选择器设置样式不起作用
- php - 静态代码分析器中未使用的 foreach 值
- tortoisegit - 同步对话框显示了一些提交,但 git 声称远程分支是最新的