TensorFlow 2 を使用したトレーニング

ランタイム バージョン 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 では、GPUTPU を使用してトレーニング ジョブを高速化できます。

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 でハイパーパラメータ指標をレポートする方法と例をご覧ください。

次のステップ