ランタイム バージョン 2.1 以降で、AI Platform Training で TensorFlow 2 を使用して機械学習モデルをトレーニングします。TensorFlow 2 では、TensorFlow 1 の API の多くが簡素化されています。TensorFlow のドキュメントには、TensorFlow 1 のコードを TensorFlow 2 に移行するためのガイドが記載されています。
AI Platform Training で TensorFlow 2 を使用してトレーニング ジョブを実行するためのプロセスは、他のカスタムコード トレーニング ジョブを実行するためのプロセスと同じです。ただし、一部の AI Platform Training 機能は、TensorFlow 2 と TensorFlow 1 で異なる動作をします。このドキュメントでは、これらの違いの概要について説明します。
Python バージョンのサポート
ランタイム バージョン 2.1 以降では、Python 3.7 でのトレーニングのみがサポートされています。したがって、TensorFlow 2 でトレーニングするには、Python 3.7 を使用する必要があります。
Python Software Foundation は、2020 年 1 月 1 日に Python 2.7 のサポートを終了しました。2020 年 1 月 1 日以降にリリースされた AI Platform ランタイム バージョンは Python 2.7 をサポートしていません。
分散型トレーニング
TensorFlow 2 では、分散トレーニング用の最新の API が提供されています。また、ランタイム バージョン 2.1 以降では、TF_CONFIG
環境変数が AI Platform Training により異なる形で設定されます。このセクションでは、これらの変更について説明します。
配信戦略
TensorFlow 2 で複数の仮想マシン(VM)インスタンスを使用して分散トレーニングを実行するには、tf.distribute.Strategy
API を使用します。特に、Keras API を MultiWorkerMirroredStrategy
または ParameterServerStrategy
(ジョブのパラメータ サーバーを指定する場合)と使用することをおすすめします。ただし、TensorFlow は現在、これらの戦略に対して試験運用版のサポートのみ提供していることに注意してください。
TF_CONFIG
TensorFlow は、トレーニングに使用する各 VM に TF_CONFIG
環境変数を設定する必要があります。AI Platform Training は、トレーニング ジョブに使用する各 VM にこの環境変数を自動的に設定します。これにより、VM は種類に応じて異なる動作をして、相互に通信できるようになります。
ランタイム バージョン 2.1 以降では、AI Platform Training は TF_CONFIG
環境変数で master
タスクタイプを使用しなくなりました。代わりに、トレーニング ジョブのマスター ワーカーに、TF_CONFIG
環境変数の chief
タイプでラベルを付けます。詳しくは、AI Platform Training で TF_CONFIG
環境変数を設定する方法をご覧ください。
トレーニング用アクセラレータ
AI Platform Training では、GPU と TPU を使用してトレーニング ジョブを高速化できます。
GPU
トレーニングに GPU を使用する方法については、GPU の構成に関する AI Platform Training ガイドと GPU の使用に関する TensorFlow のガイドをご覧ください。
複数の GPU を使用して単一の VM でトレーニングする場合は、TensorFlow の MirroredStrategy
を使用することをおすすめします。GPU を使用して複数の VM でトレーニングする場合は、TensorFlow の MultiWorkerMirroredStrategy
を使用することをおすすめします。
TPU
トレーニングに TPU を使用する方法については、TPU を使用したトレーニング ガイドをご覧ください。
ハイパーパラメータ調整
TensorFlow 2 でハイパーパラメータ調整ジョブを実行する場合は、トレーニング コードがハイパーパラメータ調整指標を AI Platform Training サービスにレポートする方法を調整する必要があります。
Estimator を使用してトレーニングする場合は、TensorFlow 1 で行うのと同じ方法で指標をサマリーに書き込むことができます。Keras を使用してトレーニングする場合は、tf.summary.scalar
を使用してサマリーを作成しておくことをおすすめします。
詳細については、TensorFlow 2 でハイパーパラメータ指標をレポートする方法と例をご覧ください。
次のステップ
- トレーニング ジョブのランタイム バージョンと Python バージョンの構成について読む。
- 分散トレーニングの構成の詳細を確認する。
- ハイパーパラメータ調整の詳細を確認する。