クイックスタート

概要: このクイックスタートでは、Cloud TPU の操作について簡単に説明します。このクイックスタートでは、Cloud TPU を使用して MNIST を実行します。これは、新しい機械学習アプローチのテストでよく使用される、手書きの数字の標準データセットです。

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

始める前に

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

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

  • Compute Engine
  • Cloud TPU
  • Cloud Storage

料金計算ツールを使うと、予想使用量に基づいて費用の見積もりを出すことができます。新しい 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
    
  4. 次のコマンドを使用して Cloud Storage バケットを作成します。

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

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

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

    $ ctpu up --zone=us-central1-b  \
    --tf-version=2.1 \
    --name=tpu-quickstart
    
  6. 指定した構成が表示されます。承認する場合は y、キャンセルする場合は n を入力してください。

  7. ctpu up コマンドの実行が終了したら、shell プロンプトが username@project から username@tpuname に変更されたことを確認します。変更されていれば、Compute Engine VM にログインしていることになります。

    Compute Engine インスタンスに接続していない場合は、次のコマンドを実行して接続します。

    gcloud compute ssh tpu-quickstart --zone=us-central1-b
    

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

MNIST TPU モデルを実行する

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

環境変数を設定する

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

(vm)$ export STORAGE_BUCKET=gs://bucket-name
(vm)$ export TPU_NAME=tpu-quickstart
(vm)$ export MODEL_DIR=$STORAGE_BUCKET/mnist
(vm)$ 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
    

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

  2. Cloud Shell で、Compute Engine VM と Cloud TPU の設定時に使用した --zone フラグを指定して ctpu delete コマンドを実行します。これにより、VM と Cloud TPU の両方が削除されます。

    $ ctpu delete --zone=us-central1-b \
      --name=tpu-quickstart
    
  3. TPU の使用に対して不要な料金が発生しないように、ctpu status を実行してインスタンスが割り当てられていないことを確認します。削除には数分かかることがあります。次のようなレスポンスは、割り当てられたインスタンスがないことを示します。

    $ ctpu status --zone=us-central1-b
    
       2018/04/28 16:16:23 WARNING: Setting zone to "us-central1-b"
       No instances currently exist.
           Compute Engine VM:     --
           Cloud TPU:             --
    
  4. 次に示すように gsutil を実行します。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 の選択方法を確認します。