(翻訳/解説)TensorFlow 0.11.0 リリースノート
翻訳 : (株)クラスキャット セールスインフォメーション
日時 : 11/14/2016
* 本ページは、github TensorFlow の releases の TensorFlow 0.11.0 を翻訳したものです:
https://github.com/tensorflow/tensorflow/blob/r0.11/RELEASE.md
主要な特徴と改良
- CUDA 8 サポート。
- cuDNN 5 サポート。
- HDFS サポート。
- Fused LSTM の cuDNN 5 経由のサポートを tensorflow/contrib/cudnn_rnn で追加。
- NumPy スタイルの基本的なスライシングのサポートが改善されました。non-1 ストライド, ellipsis (…), (np.)newaxis そして negative indices(負のインデックス)を含みます。例えば foo[1, 2:4, tf.newaxis, …, :-3:-1, :] のような複雑な式も現在ではサポートされます。更に変数に対するスライスされた割り当てのための予備的な (non-broadcasting) サポートもあります。特に var[1:3].assign([1,11,111]) のように書けます。
- 統一された tf.name_scope と tf.variable_scope のために tf.op_scope と tf.variable_op_scope は deprecated としました。tf.variable_scope の新しい引数順序は以前のバージョンのものとは非互換です。
- core/util/tensor_bundle モジュールを導入しています : このモジュールはテンソルを効率的にディスクに serialize/deserialize します。TF の新しいチェックポイント・フォーマットにおいて使用されるでしょう。
- dense matrices(密行列)あるいは行列のバッチの singular value decomposition (SVD – 特異値分解) を計算するための tf.svd を追加しました (CPU only)。
- self_adjoint_eig または self_adjoint_eigvals を使用して計算された、固有値と固有ベクトルのための勾配が追加されました。
- 殆どの線形代数と FET ops のための batch_* メソッドは削除し、行列のバッチを扱うための ops の non-batch バージョンを推進しました。
- 分散ランタイムのためのトレーシング/タイムライン・サポート (no GPU profiler yet)。
- C API の TF_GraphGetTensorNumDims と TF_GraphGetTensorShape を用いた inferred shapes へのアクセス。
- core ops のための shape 関数は REGISTER_OP(…).SetShapeFn(…) 経由の C++ に移されました。Python shape inference RegisterShape コールは common_shapes.call_cpp_shape_fn で C++ shape 関数を使用します。先のリリースでは python からRegisterShape は削除されます。
バグ修正と他の変更
- ドキュメントはテンソルと変数上の演算子オーバーロードを現在では含みます。
- tensorflow.__git_version__ は、TensorFlow がコンパイルされた、コードのバージョンをユーザに識別することを可能にしました。 また tensorflow.__git_compiler__ は TensorFlow core をコンパイルするのに使われたコンパイラを識別します。
- batch_matmul のマルチスレッド性能が改善されました。
- LSTMCell, BasicLSTMCell と MultiRNNCell コンストラクタは state_is_tuple=True にデフォルト設定されます。新しいデフォルトへ移行する間の迅速なフィックスとしては、単純に引数 state_is_tuple=False を渡せば良いです。
- DeviceFactory の AddDevices と CreateDevices 関数は void の代わりにステータスを返します。
- list(type) 引数の Int32 要素はデフォルトではホスト・メモリに置かれません。必要ならば HostMemory アノテーションを使うことにより kernel への list(type) 引数はホストメモリに置かれます。
- uniform_unit_scaling_initializer() はもはや full_shape arg を取りません、代わりにそれが呼び出された時に initializer 関数に渡された partition info に依存します。
- NodeDef protocol メッセージは graph.proto の代わりに own ファイル node_def.proto で定義されます。
- ops.NoGradient は ops.NotDifferentiable に名前変更されました。ops.NoGradient は間もなく削除されます。
- dot.h / DotGraph は削除されました(TensorBoard に先行した初期の解析ツールで、もはや有用ではありません)。歴史的にはコードが有用であったと認められるでしょう。
以上