TensorFlow 2.2.0 リリースノート (翻訳)
翻訳 : (株)クラスキャット セールスインフォメーション
作成日時 : 05/07/2020
* 本ページは、github TensorFlow の releases の TensorFlow 2.2.0 を翻訳したものです:
Release 2.2.0
Python 2 の EOL on January 1, 2020 に従うものとして 以前にアナウンス されたように、TensorFlow 2.2 は Python 2 のためのサポートをやめます。
この変更と同時に、TensorFlow の Docker イメージ の新しいリリースは Python 3 のみを独占的に提供します。今では総てのイメージは Python 3 を利用しますので、-py3 を含む Docker タグはもはや提供されません、そして latest-py3 のような既存の -py3 タグは更新されません。
主要な特徴と改良
- 文字列 tensor のためのスカラー型を std::string から tensorflow::tstring に置き換えました、これは今では ABI ステーブルです。
- CPU/GPU/TPU のための TF2 のための新しいプロファイラー。それは入力パイプラインと TF Ops を含む、デバイスとホストパフォーマンス解析の両者を供給します。最適化の提言が可能なときにはいつでも提供されます。利用ガイドラインについては このチュートリアル と ガイド を見てください。
- deprecation of swig efforts の一部としての SWIG に対して、pybind11 を使用して C++ 関数を Python にエクスポートします。
- tf.distribute :
- 新しく追加された tf.keras.layers.experimental.SyncBatchNormalization 層を使用してグローバル同期 BatchNormalization のためのサポートが追加されました。この層は同期訓練に参加している総てのレプリカに渡り BatchNormalization スタッツを総てのステップで同期します。
- tf.distribute.experimental.MultiWorkerMirroredStrategy を使用した GPU マルチワーカー分散訓練のためのパフォーマンス改良。
- NVIDIA NCCL をより良いパフォーマンスとパフォーマンス調整のために 2.5.7-1 に更新します。これに関してより多くの情報については nccl 開発者ガイド を見てください。
- float16 の勾配 allreduce をサポートします。この サンプル 利用方法を見てください。
- backward パス計算によるオーバーラップする勾配集積 (= aggregation) を可能にする all reduce 勾配パッキング の試験的サポート。
- 分散ストラテジーのための experimental_run_v2 メソッドを deprecated してメソッドを run に名前変更します、何故ならばそれはもはや試験的ではないためです。
- DistributedIterators のための CompositeTensor サポートを追加します。これは不要な関数の再追跡とメモリリークを回避する助けとなるはずです。
- tf.keras:
- Model.fit 主要な改良
- 今では Model.train_step をオーバライドすることにより Model.fit でカスタム訓練ロジックを使用できます。
- Model.fit が貴方のために処理する機能の総てについて心配することなく最先端訓練ループを容易に書くことができます (分散ストラテジー、コールバック、データ形式、ループロジック等)。
- この関数がどのようなものであるべきかのサンプルのためにデフォルト Model.train_step を見てください。同じことが Model.test_step と Model.predict_step を通して検証と推論のために適用されます。
- Model.inputs と Model.input_names に依拠する代わりに (これらはサブクラス Model のためにもはや設定されません、) SavedModel はそれ自身の Model._saved_model_inputs_spec attr を今では使用します。この attr は eager, tf.function, とグラフモードで設定されます。これはカスタム訓練ループ (CTL) を使用するときユーザが Model._set_inputs を手動で呼び出す必要性を取り除きます。
- (generator から “peek” する) 最初のバッチ上で Model を呼び出すことにより generator のために動的 shape がサポートされます。これは以前は Model._standardize_user_data. Long-term で暗黙的に発生していました、DataAdapter が Model を呼び出す必要がないような解法がおそらく好ましいでしょう。
- SavedModel 形式は今では (メトリクス、前処理層とステートフル RNN 層を含む) 総ての Keras 組込み層をサポートします。
- Keras バッチ正規化層を fused_batch_norm で実行時 mean と average 計算を使用するように更新します。Eager モードで fused_batch_norm を使用するとき重要なパフォーマンス改善を見るはずです。
- Model.fit 主要な改良
- tf.lite:
- TFLite の試験的な新しいコンバータをデフォルトで有効にします。
- XLA
- XLA は今では windows 上でビルドして動作します。総ての事前ビルド・パッケージは XLA が利用可能であれば付随します。
- XLA は CPU と GPU 上の “compile or throw exception” セマンティクスとともに tf.function のために有効化 できます。
互換性を損なう変更
-
tf.keras:
- tf.keras.applications で “top” 層の名前は “predictions” に標準化されました。これは貴方のコードが層の正確な名前に依拠している場合にのみ問題です。
- Huber 損失関数は他の Keras losses と一貫するように更新されました。それは今では reduction 関数を適用する前にサンプル毎損失の最後の軸に渡り平均を計算します。
- AutoGraph は tf.py_function, tf.py_func と tf.numpy_function に渡された関数をもはや変換しません。
- このリリースで XLA_CPU と XLA_GPU デバイスは deprecate します。
- Bazel の cc_experimental_shared_library を利用するために TF をビルドするための最小 bazel バージョンを 2.0.0 に増加します。
- functional とサブクラス化モデルのための Keras compile/fit 動作は統一されました。
metrics, metrics_names のような Model プロパティは今では functional モデルのための 実際のデータ上でモデルを訓練/評価 後にだけ利用可能です。metrics は model loss と output を 今では含み losses.loss_functions プロパティはモデルから除去されました。これは文書化されていないプロパティで、偶発的に公開されて今では除去されました。
既知の注意 (= Caveats)
- 現在の TensorFlow リリースは今では gast バージョン 0.3.3 を必要とします。
バグ修正とその他の変更
(訳注 : 翻訳を省略します、必要であれば 原文を参照してください。)
以上