TensorFlow 1.2.0 リリースノート(翻訳)
翻訳 : (株)クラスキャット セールスインフォメーション
日時 : 06/19/2017
* 本ページは、github TensorFlow の releases の TensorFlow 1.2.0 を翻訳したものです:
https://github.com/tensorflow/tensorflow/blob/r1.2/RELEASE.md
主要な特徴と改良
- Windows 上で Python 3.6 サポート。
- spatio temporal deconvolution のための tf.layers.conv3d_transpose 層を追加しました。
- tf.Session.make_callable() を追加しました、これは類似のステップを複数回実行するよりも低いオーバーヘッドの手段を提供します。
- ibverbs (訳注: infiniband verbs) ベースの RDMA サポートを contrib に追加しました (@junshi15 from Yahoo の厚意によります)。
- RNNCell オブジェクトは今では tf.layers.Layer のサブクラスです。TensorFlow 1.1 リリースで記述された厳密性は過去のものです : 最初に RNNCell が使用されると、スコープをキャッシュします。RNNCell の全てのその先の使用は同じスコープから変数を再利用します。これは TensorFlow versions <= 1.0.1 における RCNNCells の挙動からの重大な変更です。TensorFlow 1.1 では古いコードが新しいセマンティクスで正常に動作することを保証するために適所にチェックを持ちました ; このバージョンでは RNNCell のより柔軟な使用を可能にしましたがそれは TensorFlow <= 1.0.1 のために意図されたコードを使用することは微妙なエラーに導かれる可能性があります。例えば、MultiRNNCell([lstm] * 5) と書くことは、今では各層が同じパラメータを共有する 5-層 LSTM スタックをビルドします。それぞれが自身のパラメータを持つ 5 層を得るためには、MultiRNNCell([LSTMCell(...) for _ in range(5)]) と書きます。不確かであれば、最初に TF 1.1 で貴方のコードをテストしましょう ; それがエラーが上げないことを確認して、そして TF 1.2 にアップグレードします。
- TensorForest Estimator は今では serving のために SavedModel export をサポートします。
- クライアントが提供する ClusterSpec をサポートしてそして動的な TensorFlow クラスタの作成を可能にするためにそれらを全てのワーカーに伝播します。
- TensorFlow C ライブラリは今では Windows のために利用可能です。
- TensorBoard の新しいオープンソース版をリリースしました。
- SavedModel の MetaGraph を調査して実行するために SavedModel CLI ツールが利用可能になりました。
- TensorFlow の Android リリースはアプリケーションへのより容易な統合のために今では jcenter にプッシュされました。より詳細は https://github.com/tensorflow/tensorflow/blob/master/tensorflow/contrib/android/README.md
- RNNCells 変数名は Keras 層との一貫性のために名前変更されました。特に、以前の変数名 “weights” と “biases” は “kernel” と “bias” にそれぞれ変更されました。これはそのような RNN cells を含む古いチェックポイントに関して後方非互換性を引き起こすかもしれません、その場合には古いチェックポイントの変数名を変換するためのツール checkpoint_convert スクリプトが使用できます。
- 1.0 リリースの前には tf.nn 名前空間にありそして tf.contrib.rnn に移された RNN 関数とクラスの多くは今ではコア名前空間に戻されました。これは RNNCell, LSTMCell, GRUCell, そして他の多くの cells を含みます。これらは今では (後方互換性のために tf.contrib.rnn にエイリアスとともに) tf.nn.rnn_cell に在ります。元の tf.nn.rnn 関数は今では tf.nn.static_rnn で、bidirectional static と state saving static rnn 関数もまた今では tf.nn 名前空間に戻されました。
顕著な例外は EmbeddingWrapper, InputProjectionWrapper と OutputProjectionWrapper で、これらは徐々に tf.contrib.rnn の deprecation に移されます。これらは非効率なラッパーでありしばしば rnn の pre- あるいは post- プロセスとして embedding_lookup または layers.dense を呼び出すことにより置き換えられるべきです。RNN decoding については、これらの機能は tf.contrib.seq2seq の alternative API で置き換えられました。 - Intel MKL 統合 (https://software.intel.com/en-us/articles/tensorflow-optimizations-on-modern-intel-architecture)。Intel は多くの最適化された深層学習プリミティブを開発しています : 行列の乗算と畳み込みに加えて、これらのビルディング・ブロックは以下を含みます : Direct batched 畳み込みプーリング: maximum, minimum, average; 正規化: LRN, バッチ正規化; 活性化: rectified linear unit (ReLU); データ操作: 多次元転置 (変換), split, concat, sum そして scale。
Deprecations
- TensorFlow 1.2 は cuDNN 5.1 でビルドする最後の時かもしれません。TensorFlow 1.3 からは、全ての事前ビルドされたバイナリは cuDNN 6.0 でのビルドを試みるでしょう。cuDNN 5.1 と互換であるようにソースコードを保持しようとする一方で、それはベストエフォートに過ぎません。
API への重大な変更
- org.tensorflow.contrib.android.TensorFlowInferenceInterface は今では可能であれば例外を投げそしてメソッド・シグネチャを単純化しました。
contrib API への変更
- tf.contrib.util.create_example を追加しました。
- tf.contrib.image に bilinear interpolation (補完) を追加しました。
- カスタム seed 制御を持つ random ops のために tf.contrib.stateless を追加しました。
- MultivariateNormalFullCovariance が contrib/distributions/ に追加されました。
- tensorflow/contrib/rnn は Keras 層との一貫性のために RNN cell 変数名前変更を受けます。特に、以前の変数名 “weights” と “biases” は “kernel” と “bias” にそれぞれ変更されました。これはそのような RNN cells を含む古いチェックポイントに関して後方非互換性を引き起こすかもしれません、その場合には古いチェックポイントの変数名を変換するために checkpoint_convert スクリプトが使用できます。
- TensorFlow の primal (explicit) カーネル法のために tf.contrib.kernel_methods モジュールを ops と estimators とともに追加しました。
バグ修正と他の変更
- Python では、型属性上の Operation.get_attr は 期待される get_attr ドキュメンテーションと適合するために protobuf enum ではなく型の Python DType 版を返します。
- iOS ライブラリをビルドする時に MIN_SDK バージョンを 8.0 に変更しました。
- LIBXSMM 統合を修正しました。(訳注: LIBXSMM is a library for small dense and small sparse matrix-matrix multiplications as well as for deep learning primitives such as small convolutions targeting Intel Architecture.)
- decode_jpeg/decode_png/decode_gif が全てのフォーマットを扱えるようにしました、何故ならユーザは頻繁に画像を間違ったタイプとしてデコードしようとするからです。
- 暗黙的なブロードキャストの低下 (lowering) を改良します。
- GCS/Bigquery クライアントの安定性を古い送信 (stale transmission) のより速いリトライにより改良しています。
- proto 依存の最小化の一部として OpKernelConstruction::op_def() を取り除きました。
- VectorLaplaceDiag 分布が追加されました。
- Android デモを実行するために libtensorflow_demo.so をもはや必要としません (libtensorflow_inference.so は依然として必要とされます)。
- categorical_column_with_vocabulary_file を追加しました。
- Session::Run() 呼び出しに渡る batching/unbatching tensors のための ops を導入します。
- tf.log_sigmoid(x) = tf.log(tf.sigmoid(x)) = -tf.nn.softplus(-x) を追加します。
- フックのリストを immuatbles タプルに変更しました、そして今では関連する引数のための任意の iterable を許可します。
- TFDecorator を導入しました。
- スピーチ (音声) 特徴生成のための Mfcc op を追加しました。
- DirectSession::Run() のオーバーヘッドとエラー・チェックを改善しました。間違ったタイプの値の供給は今では非同期に INTERNAL エラーをあげる代わりに INVALID_ARGUMENT を同期的にあげます。間違ったタイプのテンソルを供給したとき(未定義の) 挙動に依存するコードは更新される必要があるかもしれません。
- loss のために unreduced NONE と reduced MEAN オプションを追加しました。他の Reduction constants から “WEIGHTED_” prefix を取り除きました。
- assertAllClose は今では辞書を扱います。
- HloInstructions のために Gmock matcher を追加しました。
- 変数の restore 時にエラーに変数名を追加しました。
- 音声特徴生成のために AudioSpectrogram op を追加しました。
- losses に reduction 引数を追加しました。
- tf.placeholder はスカラー shape を表すことができそれは部分的と知られていました。
- estimator_spec(mode) 引数を取り除きました。
- 音声特徴生成のために AudioSpectrogram を追加しました。
- TensorBoard は 40 実行以上がある場合にデフォルトでは全ての実行を無効にします。
- 古い doc 生成コードを取り除きました。
- GCS ファイルシステム統合は今ではドメイン・バケットをサポートします、e.g gs://bucket.domain.com/path 。
- TensorBoard へのテキストの出力のために tf.summary.text を追加します。
- tfdbg のコマンドライン・インターフェイスの “run” コマンドは今では node 名、op タイプそして tensor dtype によるテンソルのフィルタリングをサポートします。
- tf.string_to_number は今では int64 と float64 出力をサポートします。
以上