LoginSignup
8
6

More than 3 years have passed since last update.

Azure Machine Learning service を使ってみよう(環境構築編)

Last updated at Posted at 2019-04-28

Azure Machine Learning service の良さを伝えるために、まず自分で使ってみて、周りの色々なサービスとの連携を理解してみます。
いずれは Azure DevOps と組み合わせてどう使うのか、Visual Studio を使うと便利になるのか、など調べてみたいと思いますが、まずはローカル環境での Jupyter Notebook から始めてみたいと思います。

準備

次の流れで準備を進めましょう。

  1. ローカルの開発環境を準備
  2. Azure Machine Learning service のワークスペースを準備
  3. ワークスペース構成ファイルを用意して、上記2環境を連携

1. ローカルの開発環境を準備

Conda (Python仮想環境) のセットアップ

Conda を使うと 複数の Python 環境を簡単に作成、管理出来るので便利です。今回は「myenv」という仮想環境上にローカル開発環境(Python 3.6.5)を準備します。

Miniconda をセットアップ

Anaconda Prompt から以下を実行します。

(base) conda create -n myenv python=3.6.5
(base) conda activate myenv
(myenv) conda install notebook ipykernel
(myenv) ipython kernel install --user
Azure Machine Learning SDK のセットアップ

Jupyter Notebook 機能を備えた Machine Learning SDK をインストールします。

(myenv) pip install --upgrade azureml-sdk[notebooks]
(myenv) conda install -y cython matplotlib pandas

自動化された機械学習コンポーネントをインストールします。

(myenv) pip install --upgrade azureml-sdk[automl]

インストールしたのはこれ
What is the Azure Machine Learning SDK for Python?
What is the Azure Machine Learning Data Prep SDK for Python?

これでローカルPC上で Jupyter Notebook の環境を使った機械学習が出来るようになります。

(myenv) jupyter notebook

2. Azure Machine Learning service のワークスペースを準備

Jupyter Notebook から Azure Machine Learning service のワークスペースを作成してみます。
※Azure Portal から作成することも出来ます。GUI でのワークスペース作成方法はこちら

参考:Azure Machine Learning service ワークスペースを作成する

Jupyter Notebook を起動して [New] から [Python 3] をクリックします。
Notebook1.png

新規 Notebook のセルの中に以下のコマンドでワークスペースを作成します。

from azureml.core import Workspace
ws = Workspace.create(name='<workspace-name>',
                      subscription_id='<subscription-id>',
                      resource_group='<resource-group>',
                      create_resource_group=True,
                      location='<location>'
                     )

Notebook2.png

Azure Machine Learning service を使う際の認証方法について警告が出ています。Service Principal を使った認証方式をお薦めされていますが、今回は無視して、Azure Portal で結果を確認してみます。4 つのサービスが作成されます。
Notebook3.png

※ワークスペースの確認の仕方が分からない場合はこちら
参考:Azure Machine Learning service ワークスペースを作成し、管理する

3. ワークスペース構成ファイルを用意して、上記2環境を連携

上記、1 の手順で準備したローカル環境単独で機械学習を実行することも出来ますが、ワークスペース構成ファイルを作成して読み込むことで、ローカル環境で実行したトレーニング記録を Azure Machine Learning service のワークスペースに連携することが出来るようになります。以下のコマンドを使って Juputer Notebook から作成してみます。

from azureml.core import Workspace

subscription_id = '<subscription-id>'
resource_group  = '<resource-group>'
workspace_name  = '<workspace-name>'

try:
    ws = Workspace(subscription_id = subscription_id, resource_group = resource_group, workspace_name = workspace_name)
    ws.write_config()
    print('Library configuration succeeded')
except:
    print('Workspace not found')

.azureml フォルダの下にconfig.json という名前の構成ファイルが自動で作成されます。

新しい Jupyter Notebook File を作成して実際に連携が出来ているかどうか確認してみます。

import azureml.core
from azureml.core import Workspace, Experiment, Run
from azureml.core import ScriptRunConfig

ws = Workspace.from_config()
exp = Experiment(workspace=ws, name="explore-runs")

notebook_run = exp.start_logging()
notebook_run.log(name="message", value="Hello from run!")

notebook_run.get_details()

Notebook4.png

※ここを参考にしました。
参考:Python でのトレーニングの実行の開始、監視、およびキャンセル

実行状況が Azure Machine Learning Services ポータル上に記録されているか確認してみます。
Notebook6-1.png
「explore-runs」の名前で Experiment が作成されました。クリックして状況を確認してみます。
Notebook5-1.png
Jupyter Notebook でトレーニングを完了します。
Notebook8.png
Azure Machine Learning Services の ワークスペースでも状況を確認してみます。
Notebook7-1.png
確かに実行結果が記録されていることを確認しました。

トレーニングの実行場所が何処であれ、Azure Machine Learning service のワークスペースをハブとして、実行結果を記録していくというのは便利そうですね。
出張先のホテルで筋トレしても、結果は記録したいですもんね。

参考:Azure Machine Learning 内でトレーニングの実行中にメトリックを記録する

8
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
6