適用対象:Azure CLI ml 拡張機能 v2 (現行)
この記事では、TensorFlow と Azure Machine Learning Visual Studio Code 拡張機能を使用して、手書きの数値を認識するように画像分類モデルをトレーニングする方法について説明します。
重要
現在、この機能はパブリック プレビュー段階にあります。 このプレビュー バージョンはサービス レベル アグリーメントなしで提供されており、運用環境のワークロードに使用することは推奨されません。 特定の機能はサポート対象ではなく、機能が制限されることがあります。
詳しくは、Microsoft Azure プレビューの追加使用条件に関するページをご覧ください。
このチュートリアルでは、以下のタスクについて学習します。
- コードの理解
- ワークスペースの作成
- モデルをトレーニングする
前提条件
- Azure サブスクリプション。 お持ちでない場合は、 無料または有料版の Azure Machine Learning にサインアップしてください。 無料のサブスクリプションを使用している場合は、CPU クラスターのみがサポートされます。
- Visual Studio Code。軽量でクロスプラットフォームのコード エディターです。
- Azure Machine Learning スタジオ Visual Studio Code 拡張機能。 インストール手順については、「 Azure Machine Learning Visual Studio Code 拡張機能のセットアップ」を参照してください。
- CLI (v2)。 インストール手順については、CLI のインストールと設定 (v2) に関する記事を参照してください。
- コミュニティ主導の Azure Machine Learning サンプル リポジトリを複製します。
git clone https://github.com/Azure/azureml-examples.git
コードの理解
このチュートリアルのコードでは、0 から 9 の手書きの数字を分類する画像分類機械学習モデルを TensorFlow を使用してトレーニングします。 これは、入力として 28 x 28 ピクセルの画像のピクセル値を受け取り、分類される各数字に 1 つずつ、10 の確率のリストを出力するニューラル ネットワークを作成することによって行われます。 次の例は、データの外観を示しています。
ワークスペースの作成
Azure Machine Learning でアプリケーションを構築するには、まずワークスペースを作成する必要があります。 ワークスペースには、モデルをトレーニングするためのリソースと、トレーニング済みのモデル自体も含まれています。 詳細については、「Azure Machine Learning ワークスペースとは」を参照してください。
Visual Studio Code で、サンプル リポジトリから azureml-examples/cli/jobs/single-step/tensorflow/mnist ディレクトリを開きます。
Visual Studio Code のアクティビティ バーで、Azure アイコンを選択して Azure Machine Learning ビューを開きます。
[Machine Learning] で、サブスクリプション ノードを右クリックし、[ワークスペースの作成] を選択します。
仕様ファイルが表示されます。 次のオプションを使用して仕様ファイルを構成し、保存します。
$schema: https://azuremlschemas.azureedge.net/latest/workspace.schema.json name: TeamWorkspace ___location: WestUS2 display_name: team-ml-workspace description: A workspace for training machine learning models tags: purpose: training team: ml-team
この仕様ファイルによって、
TeamWorkspace
リージョン内にWestUS2
という名前のワークスペースが作成されます。 仕様ファイルに定義されている残りのオプションによって、ワークスペースのフレンドリ名、説明、およびタグが指定されます。仕様ファイルを右クリックし、[AzureML: YAML の実行] を選択します。 リソースを作成するには、YAML 仕様ファイルで定義されている構成オプションを使用し、CLI (v2) を使用してジョブを送信します。 この時点で、Azure に対して、新しいワークスペースと依存リソースをアカウントに作成するように要求が行われます。 数分後、ご利用のサブスクリプションのノードに新しいワークスペースが表示されます。
TeamWorkspace
を既定のワークスペースとして設定します。 これにより、作成したリソースとジョブが既定でこのワークスペースに配置されます。 Visual Studio Code ステータス バーの [Azure Machine Learning ワークスペースの設定] ボタンを選択し、画面の指示に従ってTeamWorkspace
を既定のワークスペースとして設定します。
ワークスペースの詳細については、「 VS Code 拡張機能を使用した Azure Machine Learning リソースの管理」を参照してください。
モデルをトレーニングする
トレーニング プロセス中は、トレーニング データを処理し、分類の対象となる数字ごとに、データに埋め込まれたパターンを学習することによって TensorFlow モデルがトレーニングされます。
ワークスペースやコンピューティング先と同様に、トレーニング ジョブはリソース テンプレートを使用して定義されます。 このサンプルでは、この仕様は 、サンプル リポジトリの azureml-examples/cli/jobs/single-step/tensorflow/mnist フォルダーにある job.yml ファイルで定義されています。
$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
code: src
command: >
python train.py
environment: azureml:AzureML-tensorflow-2.4-ubuntu18.04-py37-cuda11-gpu:48
resources:
instance_type: Standard_NC12
instance_count: 3
experiment_name: tensorflow-mnist-example
description: Train a basic neural network with TensorFlow on the MNIST dataset.
この仕様ファイルによって、tensorflow-mnist-example
Python スクリプト内のコードを実行する、先ほど作成された gpu-cluster
コンピューティング先に tensorflow-mnist-example
というトレーニング ジョブが送信されます。 使用される環境は、Azure Machine Learning によって提供されるキュレーションされた環境の 1 つであり、TensorFlow と、トレーニング スクリプトの実行に必要なその他のソフトウェア依存関係が含まれています。 キュレーション環境の詳細については、「Azure Machine Learning のキュレーションされた環境」を参照してください。
トレーニング ジョブを送信するには:
- job.yml ファイルを開きます。
- テキスト エディターでファイルを右クリックし、[AzureML: YAML の実行] を選択します。
この時点で、ワークスペースで選択したコンピューティング先で実験を実行するための要求が Azure に送信されます。 このプロセスには数分かかります。 トレーニング ジョブの実行にかかる時間は、コンピューティングの種類やトレーニング データのサイズなど、いくつかの要因によって左右されます。 実験の進行状況を追跡するには、現在の実行ノードを右クリックし、[View Job in Azure portal](Azure portal でジョブを表示する) を選択します。
外部の Web サイトを開くよう要求するダイアログが表示されたら、 [開く] を選択します。
モデルのトレーニングが完了すると、実行ノードの横にある状態ラベルが [完了] に更新されます。