次の方法で共有


チュートリアル: Azure Machine Learning Visual Studio Code 拡張機能を使用して画像分類モデルをトレーニングする (プレビュー)

適用対象:Azure CLI ml 拡張機能 v2 (現行)

この記事では、TensorFlow と Azure Machine Learning Visual Studio Code 拡張機能を使用して、手書きの数値を認識するように画像分類モデルをトレーニングする方法について説明します。

重要

現在、この機能はパブリック プレビュー段階にあります。 このプレビュー バージョンはサービス レベル アグリーメントなしで提供されており、運用環境のワークロードに使用することは推奨されません。 特定の機能はサポート対象ではなく、機能が制限されることがあります。

詳しくは、Microsoft Azure プレビューの追加使用条件に関するページをご覧ください。

このチュートリアルでは、以下のタスクについて学習します。

  • コードの理解
  • ワークスペースの作成
  • モデルをトレーニングする

前提条件

コードの理解

このチュートリアルのコードでは、0 から 9 の手書きの数字を分類する画像分類機械学習モデルを TensorFlow を使用してトレーニングします。 これは、入力として 28 x 28 ピクセルの画像のピクセル値を受け取り、分類される各数字に 1 つずつ、10 の確率のリストを出力するニューラル ネットワークを作成することによって行われます。 次の例は、データの外観を示しています。

MNIST の数字のサンプルを示すスクリーンショット。

ワークスペースの作成

Azure Machine Learning でアプリケーションを構築するには、まずワークスペースを作成する必要があります。 ワークスペースには、モデルをトレーニングするためのリソースと、トレーニング済みのモデル自体も含まれています。 詳細については、「Azure Machine Learning ワークスペースとは」を参照してください。

  1. Visual Studio Code で、サンプル リポジトリから azureml-examples/cli/jobs/single-step/tensorflow/mnist ディレクトリを開きます。

  2. Visual Studio Code のアクティビティ バーで、Azure アイコンを選択して Azure Machine Learning ビューを開きます。

  3. [Machine Learning] で、サブスクリプション ノードを右クリックし、[ワークスペースの作成] を選択します。

    ワークスペースを作成するオプションを示すスクリーンショット。

  4. 仕様ファイルが表示されます。 次のオプションを使用して仕様ファイルを構成し、保存します。

    $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 という名前のワークスペースが作成されます。 仕様ファイルに定義されている残りのオプションによって、ワークスペースのフレンドリ名、説明、およびタグが指定されます。

  5. 仕様ファイルを右クリックし、[AzureML: YAML の実行] を選択します。 リソースを作成するには、YAML 仕様ファイルで定義されている構成オプションを使用し、CLI (v2) を使用してジョブを送信します。 この時点で、Azure に対して、新しいワークスペースと依存リソースをアカウントに作成するように要求が行われます。 数分後、ご利用のサブスクリプションのノードに新しいワークスペースが表示されます。

  6. 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 のキュレーションされた環境」を参照してください。

トレーニング ジョブを送信するには:

  1. job.yml ファイルを開きます。
  2. テキスト エディターでファイルを右クリックし、[AzureML: YAML の実行] を選択します。

この時点で、ワークスペースで選択したコンピューティング先で実験を実行するための要求が Azure に送信されます。 このプロセスには数分かかります。 トレーニング ジョブの実行にかかる時間は、コンピューティングの種類やトレーニング データのサイズなど、いくつかの要因によって左右されます。 実験の進行状況を追跡するには、現在の実行ノードを右クリックし、[View Job in Azure portal](Azure portal でジョブを表示する) を選択します。

外部の Web サイトを開くよう要求するダイアログが表示されたら、 [開く] を選択します。

ジョブの進行状況を示すスクリーンショット。

モデルのトレーニングが完了すると、実行ノードの横にある状態ラベルが [完了] に更新されます。