TensorFlow 1.4.0 リリースノート(翻訳)
翻訳 : (株)クラスキャット セールスインフォメーション
日時 : 11/08/2017
* 本ページは、github TensorFlow の releases の TensorFlow 1.4.0 を翻訳したものです:
https://github.com/tensorflow/tensorflow/releases/tag/v1.4.0
主要な特徴と改良
- tf.keras は今ではコア TensorFlow API の一部です。
- tf.data は今ではコア TensorFlow API の一部です。
- API は今では後方互換保証に従います。
- tf.contrib.data API から移行するためのガイドについては、README を見てください。
- 主要な新しい特徴は (Python generator からの入力パイプラインを構築するための) Dataset.from_generator() とカスタム変換関数を適用するための Dataset.apply() メソッドを含みます。
- 幾つかのカスタム変換関数が追加され、これは tf.contrib.data.batch_and_drop_remainder() と tf.contrib.data.sloppy_interleave() を含みます。
- 単純な分散 Estimator トレーニングのための train_and_evaluate を追加します。
- DCT-II を計算するための tf.spectral.dct を追加します (訳注: DCT (Discrete Cosine Transform) は離散コサイン変換 、DCT-II はその方法の一つで信号圧縮に利用されています)。
- メル周波数ケプストラム係数 (Mel-Frequency Cepstral Coefficient, MFCC) サポートを (GPU と勾配サポートと共に) tf.contrib.signal に追加しました (訳注: MFCC は音声認識の特徴量として利用されます)。
- Windows DLL 問題 (= issues) のために import tensorflow の際にセルフチェックを追加します。
- GPU 上 tf.depth_to_space に NCHW サポートを追加します。
- TensorFlow デバッガー (tfdbg):
- tfdbg コマンドライン I/F において任意の Python/numpy 式の評価を可能にするために eval コマンドを追加します。より詳細については Debugging TensorFlow Programs を参照してください。
- ユーザビリティ改良: 頻繁に使用されるテンソル・フィルタ has_inf_or_nan は Session ラッパーと hooks に今ではデフォルトで追加されています。従って、クライアントが .add_tensor_filter(tf_debug.has_inf_or_nan) を呼び出す必要はもはやありません。
- SinhArcsinh (scalar) 分布が contrib.distributions に追加されました。
- GANEstimator をオープンソースにします。
- Estimator.export_savedmodel() は今では総ての有効な serving シグネチャを含みます、これは Serving Input Receiver と総ての利用可能な ExportOutput から構築可能です。例えば、分類器は回帰的・予測的な出力を分類的なものに追加して提供するかもしれません。これらからシグネチャを構築することは TF Serving が異なる API (Classify, Regress, そして Predict) を使用することによりリクエストを尊重することを可能にします。更に、serving_input_receiver_fn() は (入力として動作可能な) ノードの代わりのサブセットを今では指定可能です。これは、例えば、 シリアライズ化された tf.Example の代わりに生のテンソルを受け取る分類器のための予測シグネチャを生成することを可能にします。
- tf.contrib.bayesflow.hmc を追加します (訳注: hmc は Hamiltonian Monte Carlo)。
- tf.contrib.distributions.MixtureSameFamily を追加します (訳注: Mixture distribution は混合分布)。
- Dataset.shuffle() は各反復後にデフォルトで常に再シャッフルするようにします。
- tf.contrib.bayesflow.metropolis_hastings を追加します (訳注: マルコフ連鎖モンテカルロのメトロポリス法を作成する関数)。
- tf.contrib.distributions.Poisson に log_rate パラメータを追加します。
- ある種の非入射 (non-injective) 変換を処理するために tf.contrib.distributions.bijector API を拡張します。
- Java:
- 改良された type-safety のためのジェネリクス (e.g., Tensor
) (courtesy @andrewcmyers)。 - 多次元文字列テンソルのサポート。
- Linux と OS X 上のカスタム演算 (e.g. many in tf.contrib) のローディングのサポート。
- 改良された type-safety のためのジェネリクス (e.g., Tensor
- 総ての事前ビルドされたバイナリは CUDA 8 と cuDNN 6 でビルドされています。
TensorFlow 1.5 は CUDA 9 と cuDNN 7 でリリースすることを予想します。
バグ修正とその他の変更
- tf.nn.rnn_cell.DropoutWrappe は LSTM ステートをドロップアウトすることについて今ではより注意深いです。特に、LSTMStateTuple の c (メモリ) ステートはもはやドロップさえしません。新しい挙動は LSTM とスタックされた LSTM のために正しいドロップアウト動作に導きます。このバグ修正は公開された文献 (= published literature) からの推奨を追随しましたが、これは挙動の変更です。ステートのドロップアウトの挙動は新しい dropout_state_filter_visitor 引数を通してカスタマイズ可能です。
- tf.contrib.training.python_input を削除しました。同じ挙動は、より柔軟で再現可能なパッケージの新しい tf.contrib.data.Dataset.from_generator メソッドを通して利用可能です!
- log-det-jacobian を誤って計算する tf.contrib.distributions.Affine を修正します。
- non-batch, scalar draw を誤って処理する tf.random_gamma を修正します。
- TensorForest TreePredictionsV4Op における競合状態 (= race condition) を解決しました。
- Google Cloud Storage ファイルシステム、Amazon S3 ファイルシステム、そして Hadoop ファイルシステムのサポートが今ではデフォルトのビルド・オプションです。
- カスタム op ライブラリは (tf.sysconfig.get_lib() でインストールされる) libtensorflow_framework.so に対してリンクしなければなりません。
- RunConfig デフォルト挙動を random seed を設定しないように変更します、これは分散ワーカー上でランダム挙動を独立的にランダムにします。これが一般にトレーニング性能を改良することを期待します。決定論に依存するモデルは random seed を明示的に設定すべきです。
API への重大な変更
- tf.contrib.data.rejection_resample() 関数のシグネチャは変更されました。それは今では Dataset.apply() への引数として使用可能な関数を返します。
- tf.contrib.data.Iterator.from_dataset() メソッドを取り除きます。代わりに Dataset.make_initializable_iterator() を使用します。
- 殆ど使用されず不要な tf.contrib.data.Iterator.dispose_op() を取り除きます。
- 後方互換ではない方法で幾つかの TFGAN 損失関数を並べ替え (= recorder) します。
既知の問題
- Python 3 では、Dataset.from_generator() は Unicode 文字列をサポートしません。任意の文字列をバイト・オブジェクトに変換しなければなりません、generator からそれらを yield する前に。
以上