ModelErrorResponseException: неавторизованная ошибка авторизации Azure ML - PullRequest
1 голос
/ 12 марта 2020

после успешного запуска учебного оценщика и эксперимента в тетради azure мл я получаю несанкционированные ошибки при попытке зарегистрировать модель. Я также вижу несанкционированную панель в верхней части, когда смотрю на оценщик или на вкладку моделей на портале 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

1 Ответ

0 голосов
/ 14 марта 2020

Определенно странная ошибка. Похоже, вы используете это руководство в качестве ссылки. Не видя, как выглядит ваш train.py, было бы любопытно узнать, если вы:

  1. получите сообщение об ошибке при запуске ipynb руководства без каких-либо изменений?
  2. все еще есть фрагмент, как показано ниже в вашем коде?
    os.makedirs(args.output_dir, exist_ok=True)
    torch.save(model, os.path.join(args.output_dir, 'model.pt'))
    
  3. получит аналогичную ошибку, если вы попытаетесь загрузить файл, как показано во втором фрагменте этого раздела документации ?
...