<目次>
(1) Azure Machine Learningでエラー「Experiment name must be 1-256 characters」が発生した際の原因と対処方法について
(1-1) エラー
(1-2) 原因
(1-3) 対策
(1-4) 補足
(1) Azure Machine Learningでエラー「Experiment name must be 1-256 characters」が発生した際の原因と対処方法について
(1-1) エラー
Azure Machine LearningのNotebookでcreate_or_update()メソッドを実行した際に、下記のエラーが発生しました。
(図211)
(エラーメッセージ)
HttpResponseError: (ValidationError) Experiment name must be 1-256 characters, start with a letter or a number, and can only contain letters, numbers, underscores, and dashes. Code: ValidationError Message: Experiment name must be 1-256 characters, start with a letter or a number, and can only contain letters, numbers, underscores, and dashes. Exception Details: (Invalid) Experiment name must be 1-256 characters, start with a letter or a number, and can only contain letters, numbers, underscores, and dashes. Code: Invalid Message: Experiment name must be 1-256 characters, start with a letter or a number, and can only contain letters, numbers, underscores, and dashes. Target: ExperimentName Additional Information:Type: ComponentName Info: { "value": "managementfrontend" }Type: Correlation Info: { "value": { "operation": "70a275cddfbebe92415648b565958b46", "request": "6be2fea90ce11489" } }Type: Environment Info: { "value": "japaneast" }Type: Location Info: { "value": "japaneast" }Type: Time Info: { "value": "2022-12-29T13:48:24.4921495+00:00" }
(1-2) 原因
(1-3) 対策
sweep_jobをcreate_or_updateする前に「Experiment name」(属性名:experiment_name)と、「Display name」(属性名:display_name)を指定する。
●Before
returned_sweep_job = ml_client.create_or_update(sweep_job) # stream the output and wait until the job is finished ml_client.jobs.stream(returned_sweep_job.name) # refresh the latest status of the job after streaming returned_sweep_job = ml_client.jobs.get(name=returned_sweep_job.name)
●After
# Specify your experiment details sweep_job.display_name = "keras-classify-mnist-digit-images-with-dnn-sweep" sweep_job.experiment_name = "keras-dnn-image-classify-sweep" returned_sweep_job = ml_client.create_or_update(sweep_job) # stream the output and wait until the job is finished ml_client.jobs.stream(returned_sweep_job.name) # refresh the latest status of the job after streaming returned_sweep_job = ml_client.jobs.get(name=returned_sweep_job.name)
(図231)
(参考)
https://learn.microsoft.com/en-us/azure/machine-learning/migrate-to-v2-execution-hyperdrive
●修正後のチェック
上記の修正を適用後に再度Notebookを実行すると、sweepジョブが正しく生成されて、処理が完了した事が確認できました。
(図232)
(1-4) 補足
エラーが発生した周辺のメソッドについて調査した内容を備忘で残す。
●commandメソッド
使用例
(図242①)
↓
該当ドキュメント
(図242②)
↓
結果として、Commandクラスのインスタンスが生成される??
→このクラスにsweepメソッドがある
(図242③)
(参考)
https://learn.microsoft.com/en-us/python/api/azure-ai-ml/azure.ai.ml?view=azure-python#azure-ai-ml-command
https://learn.microsoft.com/en-us/python/api/azure-ai-ml/azure.ai.ml.entities.command?view=azure-python#azure-ai-ml-entities-command-sweep
●jobメソッド
使用例
(図242④)
↓
(図242⑤)
(参考)
●sweepメソッド
↓
↓
●create_or_updateメソッド
(図241)