TensorFlow 2.1.0 リリースノート (翻訳)
翻訳 : (株)クラスキャット セールスインフォメーション
作成日時 : 01/10/2020
* 本ページは、github TensorFlow の releases の TensorFlow 2.1.0 を翻訳したものです:
Release 2.1.0
TensorFlow 2.1 は Python 2 をサポートする最後の TF リリースです。Python 2 サポートは 公式に 2020 年 1 月 1 日で終了します。先にアナウンスされたように、TensorFlow もまた 2020 年 1 月 1 日から Python 2 をサポートすることを停止し、そして 2019 年にはそれ以上のリリースは想定されません。
主要な特徴と改良
- tensorflow pip パッケージは今では Linux と Windows の両者のためにデフォルトで (tensorflow-gpu と同じ) GPU サポートを含むます。これは NVIDIA GPU を持つ/持たないマシン上で動作します。tensorflow-gpu は依然として利用可能で、そしてパッケージサイズについて心配しているユーザのために CPU-only パッケージが tensorflow-cpu でダウンロード可能です。
- Windows ユーザ: 公式リリースされた tensorflow Pip パッケージは新しい /d2ReducedOptimizeHugeFunctions コンパイラ・フラグを利用するために今では Visual Studio 2019 バージョン 16.4 でビルドされています。これらの新しいパッケージを使用するには、Microsoft の web サイト ここ から利用可能な、”Microsoft Visual C++ Redistributable for Visual Studio 2015, 2017 and 2019″ をインストールしなければなりません。
- これは Windows 上でソースから TensorFlow を構築するために最小限必要なバージョンを変更はしませんが、EIGEN_STRONG_INLINE を有効にしたビルドはこのフラグなしでコンパイルするには 48 時間以上かかるかもしれません。EIGEN_STRONG_INLINE と /d2ReducedOptimizeHugeFunctions についてのより多くの情報については configure.py を参照してください。
- 必要な DLL, msvcp140.dll (old) または msvcp140_1.dll (new) のいずれかが貴方のマシン上で欠落する場合、import tensorflow は警告メッセージをプリントします。
- tensorflow pip パッケージは CUDA 10.1 と cuDNN 7.6 でビルドされています。
- tf.keras
- mixed precision のための実験的サポートが GPU と Cloud TPU 上で利用可能です。利用ガイド を見てください。
- TextVectorization 層を導入しました、これは入力として生文字列を取ってテキスト標準化、トークン化、n-gram 生成そして語彙インデキシングを扱います。この end-to-end テキスト分類サンプル を見てください。
- モデルがスコープの内側で構築されたのであれば、Keras .compile .fit .evaluate そして .predict は DistributionStrategy スコープの外側でも許容されます。
- Keras .compile, .fit, .evaluate と .predict のための実験的サポートが Cloud TPUs, Cloud TPU のために、総てのタイプの Keras モデル (sequential, functional と subclassing モデル) について利用可能です。
- 自動 outside コンパイルが今では Cloud TPU のために利用可能です。これは tf.summary が Cloud TPU でより便利に利用されることを可能にします。
- Cloud TPU 上 DistributionStrategy と Keras で動的バッチサイズがサポートされます。
- tf.data.Dataset に加えて、numpy データを使用する TPU 上 .fit, .evaluate, .predict のためのサポート。
- 多くの人気のモデルのための Keras 参照実装が TensorFlow モデル・ガーデン で利用可能です。
- tf.data
- より良いパフォーマンスのために tf.data データセット + DistributionStrategy のための再バッチ化を変更します。データセットは少し異なって動作することにも注意してください、再バッチ化されたデータセットの濃度は常にレプリカの数の倍数になる点で。
- tf.data.Dataset は今では (TPU pod 上を含む) 分散環境で自動データ分散とシャーディングをサポートします。
- tf.data.Dataset のための分散ポリシーは今では 1. tf.data.experimental.AutoShardPolicy(OFF, AUTO, FILE, DATA) 2. tf.data.experimental.ExternalStatePolicy(WARN, IGNORE, FAIL) で調整できます。
- tf.debugging
- 無限大と NaN を含む問題の根本的原因のデバッグを助けるために tf.debugging.enable_check_numerics() と tf.debugging.disable_check_numerics() を追加します。
- tf.distribute
- strategy.experimental_distribute_dataset, strategy.experimental_distribute_datasets_from_function, strategy.experimental_run_v2, strategy.reduce を通して TPU と TPU pod 上のカスタム訓練ループのサポートが利用可能です。
- strategy.scope() に加えて、tf.distribute.experimental_set_strategy() を通してグローバル分散ストラテジーのためのサポート。
- TensorRT
- TensorRT 6.0 は今ではデフォルトでサポートされて有効にされます。これは Conv3D, Conv3DBackpropInputV2, AvgPool3D, MaxPool3D, ResizeBilinear と ResizeNearestNeighbor を含むより多くの TensorFlow ops のためのサポートを追加します。更に、TensorFlow-TensorRT python 変換 API が tf.experimental.tensorrt.Converter としてエクスポートされます。
- 環境変数 TF_DETERMINISTIC_OPS が追加されました。”true” か “1” に設定されるとき、この環境変数は tf.nn.bias_add を決定論的に (i.e. 再現可能な方法で) 動作させますが、現在は XLA JIT コンパイルが有効ではないときだけです。TF_DETERMINISTIC_OPS の “true” か “1” への設定はまた cuDNN convolution と max-pooling も決定論的に動作させます。これは CUDA-有効 GPU 上で実行するとき Keras Conv*D と MaxPool*D を forward と backward 方向の両者で決定論的に動作させます。
互換性を損なう変更
- Operation.traceback_with_start_line を削除します、これについて私達は必要ないことを知っているためです。
- tf.Tensor.__repr__() から id を除去しました、id は内部デバッグ以外で有用ではないためです。
- 今では幾つかの tf.assert_* メソッドは (その時に) 入力 tensor 値が知られれば、session.run() の間ではなく、演算作成時に assertion を上げます。これはグラフ実行がエラーの結果になるときに動作を変更するだけです。これが発生するとき、noop が返されて入力 tensor は非 feedable としてマークされます。換言すれば、それらが session.run() への feed_dict 引数でキーとして使用されるのであれば、エラーが上げられます。また、幾つかの assert ops はそれをグラフ内には作成しませんので、グラフ構造は変化します。異なるグラフは異なる per-op ランダムシードという結果になるかもしれません、それらが明示的に与えられないとき (殆どの場合)。
- 次の API はもはや実験的ではありません : tf.config.list_logical_devices, tf.config.list_physical_devices, tf.config.get_visible_devices, tf.config.set_visible_devices, tf.config.get_logical_device_configuration, tf.config.set_logical_device_configuration。
- tf.config.experimentalVirtualDeviceConfiguration は tf.config.LogicalDeviceConfiguration と名前変更されました。
- tf.config.experimental_list_devices は除去されました、tf.config.list_logical_devices を使用してください。
バグ修正とその他の変更
(訳注 : 翻訳を省略します、必要であれば 原文を参照してください。)
以上