TensorFlow 1.15.0 リリースノート (翻訳)
翻訳 : (株)クラスキャット セールスインフォメーション
作成日時 : 10/09/2019
* 本ページは、github TensorFlow の releases の TensorFlow 1.15.0 を翻訳したものです:
Release 1.15.0
これは TensorFlow のための最後の 1.x リリースです。特徴を伴う 1.x ブランチを更新する予定はありません、少なくとも 1 年間は脆弱性を修正するためのパッチリリースは発行するつもりですが。
主要な特徴と改良
- アナウンス されたように、現在 GPU サポートを持つプラットフォーム (Linux と Windows) に対しては tensorflow pip パッケージはデフォルトで (今は tensorflow-gpu と同じ) GPU サポートを含みます。それは Nvidia GPU を持つあるいは持たないマシン上で動作します。tensorflow-gpu は依然として利用可能で、そして CPU-only パッケージはパッケージサイズについて心配しているユーザのために tensorflow-cpu でダウンロード可能です。
- TensorFlow 1.15 は compat.v2 モジュールで 2.0 API の完全な実装を含みます。それは compat.v1 モジュールで (contrib なしの) 1.15 メインモジュールのコピーを含みます。TensorFlow 1.15 は enable_v2_behavior() 関数を使用して 2.0 の動作をエミュレートできます。これは前方互換コードを書くことを可能にします : tensorflow.compat.v1 か tensorflow.compat.v2 を明示的にインポートすることにより、貴方のコードが 1.15 か 2.0 のインストールに対して変更なしに動作することを保証できます。
- EagerTensor は今では tensor のために numpy buffer インターフェイスをサポートします。
- v2 制御フローを有効/無効にするためにトグル tf.enable_control_flow_v2() と tf.disable_control_flow_v2() を追加します。
- tf.enable_v2_behavior() と TF2_BEHAVIOR=1 の一部として v2 制御フローを有効にします。
- AutoGraph は Python 制御フローを TensorFlow 式に変換して、ユーザに tf.function-decorate された関数内で通常の Python を書くことを可能にします。AutoGraph はまた tf.data, tf.distribute と tf.keras API で使用される関数内にも適用されます。
- enable_tensor_equality() を追加します、これは次のように動作を切り替えます :
- Tensor はもはや hashable ではありません。
- Tensor は == と != で比較可能です、element-wise な比較結果を持つ Boolean Tensor を生成します。これは 2.0 のデフォルトの動作です。
- Auto Mixed-Precision グラフ optimizer は Volta と Turing Tensor Core 上の高速化のためにモデルを float16 に変換することを単純化します。この特徴は tf.train.experimental.enable_mixed_precision_graph_rewrite() で optimizer クラスをラップすることにより有効にできます。
- 環境変数 TF_CUDNN_DETERMINISTIC を追加します。”true” or “1” に設定することは決定論的 cuDNN convolution と max-pooling アルゴリズムの選択を強制します。これが有効にされるとき、アルゴリズム選択手続き自身もまた決定論的です。
- TensorRT
- TF 2.0 のための準備で TensorRT conversion ソースを contrib から compiler ディレクトリに移行します。
- TensorRT conversion のために追加の、ユーザ・フレンドリーな TrtGraphConverter API を追加します。
- TensorRT conversion の TensorFlow 演算子のためのサポートを拡張します (e.g. Gather, Slice, Pack, Unpack, ArgMin, ArgMax,DepthSpaceShuffle)。
- TensorRT conversion の TensorFlow 演算子 CombinedNonMaxSuppression をサポートします、これはオブジェクト検出モデルを本質的に高速化します。
互換性を損なう変更
- Tensorflow コードは今では 2 つの異なる pip パッケージを生成します : tensorflow_core は総てのコードを含み (将来的にはそれは private 実装だけを含むでしょう) そして tensorflow は仮想 pip パッケージで tensorflow_core への forwarding を行ないます (そして将来的には tensorflow の public API だけを含むでしょう)。私たちはこれを breaking であるとは想定していません、実装から直接的にインポートしていなかった場合には。
- TensorFlow 1.15 は Ubuntu 16 上 devtoolset7 (GCC7) を使用してビルドされています。これは TensorFlow のより早期のバージョンに対してビルドされた拡張との ABI 非互換性に繋がるかもしれません。
- ResourceVariable で constraint= と .constraint の使用は deprecated しました。
- tf.keras :
- デフォルト Keras config で OMP_NUM_THREADS はもはや使用されません。スレッド数を configure するには、tf.config.threading API を使用します。
- tf.keras.model.save_model と model.save は今では TensorFlow SavedModel をセーブすることがデフォルトです。
- keras.backend.resize_images (そして結果的に、keras.layers.Upsampling2D) の動作は変わりました、resizing 実装のバグは修正されました。
- Layer は今では float32 がデフォルトで、それらの入力を自動的に Layer の dtype にキャストします。float64 を使用したモデルを持っていた場合、それは TensorFlow 2 では多分静かに float32 を使用します、そして ‘Layer “layer-name” is casting an input tensor from dtype float64 to the layer’s dtype of float32’ で始まる警告が発行されます。修正するには、tf.keras.backend.set_floatx(‘float64′) でデフォルト dtype を float64 に設定するか、Layer コンストラクタの各々に dtype=’float64’ を渡します。より多くの情報は tf.keras.layers.Layer を見てください。
- 幾つかの tf.assert_* メソッドは今では演算作成時 (i.e. この Python 行が実行されるとき) に assertion を上げます、入力 tensor の値が (session.run() の間ではなく) その時に知られる場合には。これが起きるとき、noop が返されて入力 tensor は non-feedable としてマークされます。換言すれば、それらが session.run() への feed_dict 引数でキーとして使用される場合、エラーが上げられます。また、幾つかの assert ops はそれをグラフ内に行ないませんので、グラフ構造が変わります。異なるグラフはそれらが明示的に与えられない (殆どの場合) とき異なる per-op ランダム seed という結果になる可能性があります。
バグ修正とその他の変更
(訳注 : 翻訳を省略します、必要であれば 原文 を参照してください。)
以上