TensorFlow 1.13.0 リリースノート (翻訳)
翻訳 : (株)クラスキャット セールスインフォメーション
作成日時 : 02/24/2019
* 本ページは、github TensorFlow の releases の TensorFlow 1.13.0 を翻訳したものです:
主要な特徴と改良
- TensorFlow Lite は contrib から core に移動しました。これは、Python モジュールが tf.ilte 下にありソースコードは今では tensorflow/contrib/lite ではなく tensorflow/lite 下にあることを意味します。
- TensorFlow GPU バイナリは今では CUDA 10 と TensorRT 5.0 に対してビルドされています。
- 総てのオペレーティングシステム上で Python3.7 のためのサポート。
- NCCL を core に移しました。
動作変更
- tf.constant で python floating 型の uint32/64 への変換を禁止します (他の整数型の適合する動作です)。
- convolutional orthogonal initializer (convolutional_delta_orthogonal, convolutional_orthogonal_1D, convolutional_orthogonal_2D, convolutional_orthogonal_3D) の gain 引数が tf.initializers.orthogonal initializer と一致した動作を持つようにします、i.e. sqrt(gain) ではなく gain により出力 l2-norm をスケールします (これらの関数は現在 tf.contrib にありこれらは後方互換性が保証されていないことに注意してください)。
バグ修正とその他の変更
- Documentation
- quantize_and_dequantize_v2 で使用される rounding mode についての詳細とともに doc を更新します。
- TensorFlow ライブラリを使用する前に tensorflow::port::InitMain() が呼び出されるべきであることを明記します。これをしないプログラムは総てのプラットフォームへ可搬ではありません。
- Deprecations とシンボル名変更。
- 次のエンドポイントのための deprecation を除去しています : ttf.acos, tf.acosh, tf.add, tf.as_string, tf.asin, tf.asinh, tf.atan, tf.atan2, tf.atanh, tf.cos, tf.cosh, tf.equal, tf.exp, tf.floor, tf.greater, tf.greater_equal, tf.less, tf.less_equal, tf.log, tf.logp1, tf.logical_and, tf.logical_not, tf.logical_or, tf.maximum, tf.minimum, tf.not_equal, tf.sin, tf.sinh, tf.tan
- tf.data.Dataset.shard を deprecate します。
- (saved_model.load により置き換えられる) saved_model.loader.load と (V2 で saved_model.main_op により置き換えられる) saved_model.main_op を deprecate します。
- tf.QUANTIZED_DTYPES を deprecate します。公式の新しいシンボルは tf.dtypes.QUANTIZED_DTYPES です。
- deprecate されたパッケージのための sklearn imports を更新します。
- Dataset.range のために Variable.count_up_to と tf.count_up_to を deprecate します。
- confusion_matrix を tf.train.confusion_matrix の代わりに tf.math.confusion_matrix として export します。
- dtypes.py の総ての constant のために tf.dtypes. エンドポイントを追加します ; versions.py のエンドポイントを tf.sysconfig. と tf.version. の対応するエンドポイントに移します ; tf.saved_model サブモジュール下の総ての constant を tf.saved_model モジュールへ移します。新しいエンドポイントは V1 と V2 で追加されますが存在するエンドポイント除去は V2 で適用されるのみです。
- デバイス割り当てが collocation コンテキスト・マネージャ内の collocation constraint をオーバーライドするという動作を deprecate します。
- Keras & Python API
- tf.register_tensor_conversion_function に類似した Keras 機能を追加します。
- サブクラス化された Keras モデルは今では tf.contrib.saved_model.save_keras_model を通してセーブされます。
- LinearOperator.matmul は今では新しい LinearOperator を返します。
- 新しい ops と改良された op 機能
- 最近傍 (Nearest Neighbor) Resize op を追加します。
- parse_values に ignore_unknown 引数を追加します、これは未知の hyperparameter 型に対して ValueError を抑制します。tf.linalg.matvec 便宜関数を追加します。
- tf.einsum() は “ii->” のようなサポートされない式のために ValueError を上げます。
- tf.signal.dct と tf.signal.idct の DCT-I and IDCT-I を追加します。
- LU decomposition op を追加します。
- estimator の勾配ブースティング木に quantile 損失を追加します。
- rounding アルゴリズムを選択するために QuantizeAndDequantizeV2 op に round_mode を追加します。
- unicode_encode, unicode_decode, unicode_decode_with_offsets, unicode_split, unicode_split_with_offset, そして unicode_transcode ops を追加します。特に、この Op は様々な入力テキスト・エンコーディング形式を主要な Unicode エンコーディング (UTF-8, UTF-16-BE, UTF-32-BE) にエンコード、デコードそして transcode します。
- substr op へ “unit” 属性を追加します、これは unicode 文字を含む文字列の部分文字列を得ることを可能にします。
- Ragged Tensor のためのブロードキャスティング・サポート。
- SpaceToDepth は uint8 データ型をサポートします。
- estimator でマルチラベル分位点回帰をサポートします。
- 今では tf.nn.safe_embedding_lookup_sparse, tf.nn.sampled_softmax そして tf.nn.nce_loss で “div” をデフォルト partition_strategy として使用します。hyperparameter は無視されます。
- パフォーマンス
- GPU cumsum/cumprod のパフォーマンスを 300x まで改良します。
- 殆どの TPU embedding optimizer の重み減衰のためのサポートを追加しました、AdamW と MomentumW を含みます。
- TensorFlow 2.0 開発
- TF2.0 に変換するためのコマンドライン・ツール, tf_upgrade_v2 を追加します。
- TensorFlow 2.0 のために tf.spectral を tf.signal 内にマージします。
- 2.0 では LSTM のためのデフォルト recurrent 活性化関数を ‘hard_sigmoid’ から ‘sigmoid’ に変更します。歴史的には recurrent 活性は ‘hard_sigmoid’ では何故ならばそれは ‘sigmoid’ よりも速いからです。CPU と GPU モード間の新しい統一されたバックエンドでは、CuDNN カーネルが sigmoid を使用していますので、CPU モードのためのデフォルトもまた sigmoid に変更します。それにより、デフォルト LSTM は CPU と GPU カーネルの両者で互換になるでしょう。これは GPU を持つユーザに、デフォルトで CuDNN カーネルを使用して訓練で 10x パフォーマンス・ブーストを得ることを可能にします。これはチェックポイントの互換性を損なう変更であることに注意してください。ユーザが 1.x の事前訓練されたチェックポイントを使用することを望む場合には、1.x の挙動に戻すために LSTM(recurrent_activation=’hard_sigmoid’) で層を構築してください。
- TensorFlow Lite
- tensorflow/contrib/lite から tensorflow/lite に移します。
- TensorFlow Lite デリゲートを導入するために実験的な Java API を追加します。
- TensorFlow Lite Java API で文字列のサポートを追加します。
- tf.contrib:
- Apache IGFS へのアクセスをサポートするために Apache Ignite Filesystem プラグインを追加します。
- Dropout は今では rate 引数を取ります、keep_prob は deprecated です。
- Estimator の出現への参照 tf.contrib.estimator は tf.estimator に変更されました :
- tf.contrib.estimator.BaselineEstimator は tf.estimator.BaselineEstimator によって (置き換えられました)。
- tf.contrib.estimator.DNNLinearCombinedEstimator は tf.estimator.DNNLinearCombinedEstimator によって。
- tf.contrib.estimator.DNNEstimator は tf.estimator.DNNEstimator によって。
- tf.contrib.estimator.LinearEstimator は tf.estimator.LinearEstimator によって。
- tf.contrib.estimator.InMemoryEvaluatorHook と tf.estimator.experimental.InMemoryEvaluatorHook。
- tf.contrib.estimator.make_stop_at_checkpoint_step_hook は tf.estimator.experimental.make_stop_at_checkpoint_step_hook によって。
- tf.contrib.distribute.DistributionStrategy のための新しい名前として tf.distribute.Strategy を晒します (= expose)。
- linear optimizer を contrib から core に移します。
- tf.contrib.signal を tf.signal に移します (エイリアスは tf.contrib.signal で維持しています)。
tf.contrib.estimator.export_all_saved_models とその関連のユーザは tf.estimator.Estimator.experimental_export_all_saved_models に切り替えるべきです。
- tf.data:
- StatsAggregator を使用して tf.data.Dataset パイプラインから統計を集めるオプションを configure する、tf.data.experimental.StatsOptions() を追加します。tf.data.Options にネストされたオプション, experimental_stats (これは tf.data.experimental.StatsOptions オブジェクトを取ります) を追加します。tf.data.experimental.set_stats_agregator は deprecate します。
- パフォーマンス最適化 :
- tf.data パフォーマンス最適化を有効にするオプションを configure する、tf.data.experimental.OptimizationOptions() を追加します。tf.data.Options にネストされたオプション, experimental_optimization (これは tf.data.experimental.OptimizationOptions オブジェクトを取ります) を追加します。 tf.data.Options から パフォーマンス最適化オプションを除去し、代わりにそれらを tf.data.experimental.OptimizationOptions 下に追加します。
- デフォルトで map_and_batch_fusion と noop_elimination 最適化を有効にします。それらは map_and_batch = False または noop_elimination = False をそれぞれ設定するために tf.data.experimental.OptimizationOptions を configure することにより無効にできます。総てのデフォルト最適化を無効にするには、apply_default_optimizations = False を設定します。
- map_and_filter_fusion で並列マップ (= parallel map) をサポートします。
- non-resource tf.Variables を使用する入力パイプラインのための静的最適化を無効にします。
- NUMA-aware MapAndBatch データセットを追加します。
- V1 で tf.data.Dataset.make_one_shot_iterator() を deprecate し、V2 からそれを除去し、そして tf.compat.v1.data.make_one_shot_iterator() を追加しました。
- V1 で tf.data.Dataset.make_initializable_iterator() を depreate し、V2 からそれを除去し、そして tf.compat.v1.data.make_initializable_iterator() を追加しました。
- コア tf.data 変換 (= transformations) でネストされたデータセットサポートを有効にします。
- tf.data.Dataset 実装者のために: Dataset.output_{types,shapes,classes} を置き換えるために tf.data.Dataset._element_structured 属性を追加しました。
- tf.data.Dataset.interleave と tf.data.Dataset.map の num_parallel_calls を Eager モードで動作するようにします。
- Toolchains
- EVP_MD_CTX_destroy を回避することで OpenSSL 互換性を修正しました。
- deprecation 警告を表示出力するために境界チェックを追加しました。
- CUDA 依存性を 10.0 にアップグレードしました。
- Android NDK r14b でビルドするために、ndroid-ndk-r14b/platforms/android-14/arch-*/usr/include/linux/futex.h に “#include
” を追加します。 - :android_tensorflow_lib_selective_registration* ターゲットを除去しました、代わりに :android_tensorflow_lib_lite* ターゲットを使用してください。
- XLA
- RoundToEven 関数を xla/client/lib/math.h に移します。
- “1” または “true” に設定された新しい環境変数 TF_XLA_DEBUG_OPTIONS_PASSTHROUGH は XRTCompile op 内で渡されるデバッグオプションに XLA コンパイル・バックエンドに直接渡されることを可能にします。そのような変数が (サービス側で) 設定されない場合、制限されたセットだけが渡し通されます。
- XRTCompile op に 2 番目の return 引数として (XLA コンパイルからの結果の) ProgramShape を返すことを可能にします。
- XLA HLO グラフは今では SVG/HTML として表現されます。
- Estimator
- tf.contrib.estimator.BaselineEstimator の総ての出現を tf.estimator.BaselineEstimator で置き換えます。
- tf.contrib.estimator.DNNLinearCombinedEstimator の総ての出現を tf.estimator.DNNLinearCombinedEstimator で置き換えます。
- tf.contrib.estimator.DNNEstimator の総ての出現を tf.estimator.DNNEstimator で置き換えます。
- tf.contrib.estimator.LinearEstimator の総ての出現を tf.estimator.LinearEstimator で置き換えます。
- tf.contrib.estimator.export_all_saved_models とその関連のユーザは tf.estimator.Estimator.experimental_export_all_saved_models に切り替えるべきです。
- regression_head を Canned Estimator V2 のための新しい Head API に更新します。
- multi_class_head を Canned Estimator V2 のための Head API に切り替えます。
- tf.contrib.estimator.InMemoryEvaluatorHook と tf.contrib.estimator.make_stop_at_checkpoint_step_hook の総ての出現を tf.estimator.experimental.InMemoryEvaluatorHook と tf.estimator.experimental.make_stop_at_checkpoint_step_hook で置き換えます。
- linear optimizer を contrib から core に移します。
以上