今回は、前回ご紹介したAZURE MACHINE LEARNINGをPOWERSHELLで操作するモジュール「AzureMLPS」を使い、新規Workspaceの作成やExperimentのエクスポート、インポートをする方法をご紹介します。
AzureMLPSには新規Workspaceの作成やExperimentをjson形式でエクスポート、インポートする機能が備わっています。
この機能を使って、既存のWorkspaceからExperimentをエクスポートし、新規作成したWorkspaceにインポートをしてみます。
※本記事にはAzureクラシックポータルでの操作が含まれており、今後仕様が変更になる場合があります。
Workspaceの新規作成
まずWorkspaceの新規作成ですが、作成にあたってAzureに「管理証明書」を登録しておく必要があります。
PowerShell で下記のコマンドを実行して自己証明書の作成とcerファイルのエクスポートを行います。
1 2 3 4 5 6 7 |
# 自己証明書の作成 $cert = New-SelfSignedCertificate -CertStoreLocation cert:\CurrentUser\My - Subject 'CN=Test_Azure_Management_Cert' -KeySpec KeyExchange - KeyExportPolicy Exportable -HashAlgorithm SHA256 # 公開鍵をcerファイルとしてエクスポート Export-Certificate -Cert $cert -Type CERT -FilePath 'C:\AzureMLPS\mycert.cer' |
作成されたcerファイルをAzureに登録します。
Azureクラシックポータルの「設定」から「管理証明書」タブを選択し、「アップロード」をクリックします。
先ほど作成したcerを選択し、右下のチェックをクリックします。
管理証明書がアップロードできたら、下記コマンドによりサムプリントを確認しておきます。
1 2 |
(dir Cert:\CurrentUser\My | where Subject -eq 'CN=Test_Azure_Management_Cert').Thumbprint |
続いて、Workspaceの作成に「ストレージアカウントキー」が必要になるため、下記コマンドによりPowerShellでAzureに
サインインしておきます。
※この操作には「Azure PowerShell」のインストールが必要になります。
1 2 3 |
Add-AzureAccount Get-AzureSubscription Select-AzureSubscription -SubscriptionId <サブスクリプションID> |
以上の操作が完了したらPowerShell で新規Workspaceを作成していきます。
下記のコマンドを実行することで、既存のWorkspaceと同じストレージアカウントに新規Workspaceが作成されます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
# AzureMLPSモジュールのインポート Import-Module .\AzureMLPS.dll #Workspace情報の取得 $ws = Get-AmlWorkspace #管理証明書のサムプリントの取得 $thum = (dir Cert:\CurrentUser\My | where Subject -eq 'CN=Test_Azure_Management_Cert').Thumbprint #ストレージアカウントキーの取得 $key = Get-AzureStorageKey -StorageAccountName $ws.UserStorage #Workspace名の設定 $name = ‘<WorkspaceName (任意の名称)>’ #Worksapceの新規作成 New-AmlWorkspace -ManagementCertThumbprint $thum -AzureSubscriptionId $ws.SubscriptionId -WorkspaceName $name -Location $ws.Region - StorageAccountName $ws.UserStorage -StorageAccountKey $key.Primary - OwnerEmail $ws.OwnerEmail |
Experimentのエクスポートおよびインポート
Workspaceの作成ができたところで、既存のWorkspaceからExperimentをエクスポートし
新規Workspaceへインポートします。
今回は「Run Selected – Sample」というExperimentをエクスポートし、「New – Run Selected」という名称で新規Workspaceにインポートします。
まずは、下記のコマンドによりExperimentをjson形式でエクスポートします。
OutputFileオプションにはファイル名を指定します。実行すると指定したフォルダにjsonファイルが出力されます。
1 2 |
$exp = Get-AmlExperiment | where Description -eq '<Experiment名>' Export-AmlExperimentGraph -ExperimentId $exp.ExperimentId -OutputFile ‘.\<ファイル名>.json' |
続いて、出力したjsonファイルを新規Workspaceにインポートしますが、その前にAzureMLPSの「config.json」をコピーして新規Workspace用の設定ファイルを作成しておきます。
新規Workspace用設定ファイルを作成したら、下記のコマンドにてExperimentをインポートします。
InputFileに出力したExperimentのjsonファイル、NewNameに新しいExperiment名、ConfigFileに新規Workspace用config.jsonの絶対パスを指定します。
1 2 3 |
> Import-AmlExperimentGraph -InputFile '<Experimentのjsonファイル>' - NewName ‘<新しいExperiment名(任意)>’ -ConfigFile ‘<新規Workspace用config.json (絶対パス)>’ |
「New – Run Selected」が追加されていることが確認できました。
いかがでしたか?
エクスポート機能はWorkspaceの整理だけでなくExperimentのバックアップとしても重宝するのではないでしょうか。
次回はPowerShellを使ったバッチ処理についてご紹介します。
次回もお楽しみに!!