クイックスタート

概要: Cloud TPU を使用して MNIST をトレーニングする方法について学びます。MNIST は、新しい機械学習アプローチのテストでよく使用される、手書きの数字の標準データセットです。

このトピックは、Cloud TPU を初めて使用する方を対象としています。Cloud TPU の詳細については、Google の colabs のいずれかをお試しください。また、チュートリアル セクションには、さまざまなサンプルが掲載されています。


このタスクを Cloud Shell IDE で直接行う際の順を追ったガイダンスについては、[ガイドを表示] をクリックしてください。

ガイドを表示


以降のセクションでは、[ガイドを表示] をクリックした場合と同じ手順について説明します。

始める前に

このチュートリアルを開始する前に、Google Cloud プロジェクトが正しく設定されていることを確認します。詳細しくは、アカウントと Cloud TPU プロジェクトを設定するをご覧ください。

このチュートリアルでは、Google Cloud の課金対象となる以下のコンポーネントを使用します。

  • Compute Engine
  • Cloud TPU
  • クラウド ストレージ

料金計算ツールを使うと、予想使用量に基づいて費用の見積もりを出すことができます。新しい Google Cloud ユーザーは無料トライアルをご利用いただける場合があります。

このセクションでは、Cloud Storage ストレージと Compute Engine VM の設定について説明します。

  1. Cloud Shell ウィンドウを開きます。

    Cloud Shell を開く

  2. プロジェクト ID の変数を作成します。

    export PROJECT_ID=project-id
    
  3. Cloud TPU を作成するプロジェクトを使用するように gcloud コマンドライン ツールを構成します。

    gcloud config set project $PROJECT_ID
    

    このコマンドを新しい Cloud Shell VM で初めて実行すると、Authorize Cloud Shell ページが表示されます。ページの下部にある [Authorize] をクリックして、gcloud に認証情報を使用した GCP API の呼び出しを許可します。

  4. 次のコマンドを使用して Cloud Storage バケットを作成します。

    gsutil mb -p ${PROJECT_ID} -c standard -l us-central1 -b on gs://bucket-name
    

    この Cloud Storage バケットには、モデルのトレーニングに使用するデータとトレーニング結果が格納されます。

  5. gcloud コマンドを使用して Compute Engine VM と Cloud TPU を起動します。

    $ gcloud compute tpus execution-groups create \
     --name=mnist-tutorial \
     --zone=us-central1-b \
     --tf-version=2.4.1 \
     --machine-type=n1-standard-1 \
     --accelerator-type=v3-8
    

    コマンドフラグの説明

    name
    作成する Cloud TPU の名前。
    zone
    Cloud TPU を作成するゾーン
    tf-version
    gcloud コマンドが VM にインストールする TensorFlow のバージョン。
    machine-type
    作成する Compute Engine VM のマシンタイプ
    accelerator-type
    作成する Cloud TPU のタイプ

    gcloud コマンドの詳細については、gcloud リファレンスをご覧ください。

  6. gcloud compute tpus execution-groups コマンドの実行が終了したら、shell プロンプトが username@projectname から username@vm-name に変更されたことを確認します。変更されていれば、Compute Engine VM にログインしていることになります。

    gcloud compute ssh mnist-tutorial --zone=us-central1-b
    

    これらの手順を続行する場合は、VM セッション ウィンドウで、(vm)$ で始まる各コマンドを実行します。

MNIST TPU モデルを実行する

MNIST TPU モデルのソースコードは GitHub で入手できます。

環境変数を設定する

次の変数を作成します。bucket-name は、使用するバケット名に置き換えてください。

(vm)$ export STORAGE_BUCKET=gs://bucket-name
(vm)$ export TPU_NAME=mnist-tutorial
(vm)$ export MODEL_DIR=$STORAGE_BUCKET/mnist
(vm)$ export DATA_DIR=$STORAGE_BUCKET/data
(vm)$ export PYTHONPATH="$PYTHONPATH:/usr/share/models"

Cloud TPU でモデルをトレーニングする

  1. モデルが保存されているディレクトリに移動します。

    (vm)$ cd /usr/share/models/official/vision/image_classification
    
  2. MNIST トレーニング スクリプトを実行します。

    (vm)$ python3 mnist_main.py \
      --tpu=$TPU_NAME \
      --model_dir=$MODEL_DIR \
      --data_dir=$DATA_DIR \
      --train_epochs=10 \
      --distribution_strategy=tpu \
      --download
    

トレーニング スクリプトが v3-8 Cloud TPU で 5 分未満で実行され、次のような出力が表示されます。

I1203 03:43:15.936553 140096948798912 mnist_main.py:165]
Run stats: {'loss': 0.11427700750786683, 'training_accuracy_top_1': 0.9657697677612305,
'accuracy_top_1': 0.9730902910232544, 'eval_loss': 0.08600160645114051}

クリーンアップ

このクイックスタートで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、次の手順を行います。

  1. Compute Engine インスタンスとの接続を切断していない場合は切断します。

    (vm)$ exit
    

    プロンプトが username@projectname に変わります。これは、現在、Cloud Shell 内にいることを示しています。

  2. Cloud TPU と Compute Engine リソースを削除します。

    $ gcloud compute tpus execution-groups delete mnist-tutorial \
      --zone=us-central1-b
    
  3. gcloud compute tpus execution-groups list を実行して、リソースが削除されたことを確認します。削除には数分かかることがあります。以下のようなレスポンスは、インスタンスが正常に削除されたことを示します。

    $ gcloud compute tpus execution-groups list --zone=us-central1-b
    
    NAME             STATUS
    
  4. 次に示すように、gsutil を使用して Cloud Storage バケットを削除します。bucket-name を Cloud Storage バケットの名前に置き換えます。

    $ gsutil rm -r gs://bucket-name
    

次のステップ

このクイックスタートでは、Cloud TPU の操作について簡単に説明しました。これにより、以下への準備ができました。

  • Cloud TPU の詳細を学習する
  • 独自のアプリケーション用に Cloud TPU を設定する

詳細情報

Keras と MNIST colab 環境で MNIST モデルを実行して、Cloud TPU の機能を試せます。
サービスの概要 Cloud TPU の主な機能と利点について確認します。
Cloud Tensor Processing Unit(TPU) Cloud TPU の機能とそのメリットについて学習します。
料金 Cloud TPU の料金を確認します。

設定

TPU のサービスの選択 Compute EngineGoogle Kubernetes EngineAI Platform など、Cloud TPU で使用するさまざまなオプションについて理解を深めます。
TPU タイプとゾーン 各ゾーンで使用できる TPU タイプを確認します。
TPU のバージョン さまざまな TPU のバージョンを理解し、アプリケーションに適した TPU の選択方法を確認します。