ホーム » 「TensorFlow 2.0 Release Note」タグがついた投稿

タグアーカイブ: TensorFlow 2.0 Release Note

TensorFlow 2.6.0 リリースノート

TensorFlow 2.6.0 リリースノート (翻訳)

翻訳 : (株)クラスキャット セールスインフォメーション
作成日時 : 08/12/2021

* 本ページは、github TensorFlow の releases の TensorFlow 2.6.0 の Major Features and Improvements 他のセクションを翻訳したものです:

 

クラスキャット 人工知能 研究開発支援サービス 無料 Web セミナー開催中

◆ クラスキャットは人工知能・テレワークに関する各種サービスを提供しております。お気軽にご相談ください :

◆ 人工知能とビジネスをテーマに WEB セミナーを定期的に開催しています。スケジュール
  • お住まいの地域に関係なく Web ブラウザからご参加頂けます。事前登録 が必要ですのでご注意ください。
  • ウェビナー運用には弊社製品「ClassCat® Webinar」を利用しています。

お問合せ : 本件に関するお問い合わせ先は下記までお願いいたします。

株式会社クラスキャット セールス・マーケティング本部 セールス・インフォメーション
E-Mail:sales-info@classcat.com  ;  WebSite: https://www.classcat.com/  ;  Facebook

 

 

Release 2.6.0

 

互換性を損なう変更

  • tf.train.experimental.enable_mixed_precision_graph_rewrite は削除されます、API はグラフモードのみで動作してカスタマイズ可能ではないからです。この関数は引き続き tf.compat.v1.mixed_precision.enable_mixed_precision_graph_rewrite 下でアクセス可能ですが、代わりに Keras 混合精度 API を使用することが推奨されます。

  • tf.lite:
    • experimental.nn.dynamic_rnn, experimental.nn.TfLiteRNNCell と experimental.nn.TfLiteLSTMCell を削除します、これらはもはやサポートされないからです。代わりに単に keras lstm を使用することが勧められます。

  • tf.keras:
    • Keras は個別の PIP パッケージ (keras) に分割されて、そのコードは GitHub レポジトリ keras-team/keras に移動されました。tf.keras のための API エンドポイントは変更されないままですが、今では keras PIP パッケージにより支援されます。tensorflow/python/keras の既存のコードは古いコピーで将来的なリリース (2.7) では削除されます。tensorflow.python.keras への任意のインポートは削除して代わりにそれらを public tf.keras API で置き換えてください。
    • メソッド Model.to_yaml() と keras.models.model_from_yaml は任意のコード実行を引き起こすように悪用できるので、RuntimeError を上げるように置き換えられました。YAML の代わりに JSON シリアリゼーションを使用するか、より良い代替 H5 にシリアライズすることを勧めます。

 

主要な特徴と改良

  • tf.keras:
    • Keras は個別の PIP パッケージ (keras) に分割されて、そのコードは GitHub レポジトリ keras-team/keras に移動されました。tf.keras のための API エンドポイントは変更されないままですが、今では keras PIP パッケージにより支援されます。総ての Keras-関連の PR と issues は今では GitHub レポジトリ keras-team/keras に向けられるべきです。
    • tf.keras.utils.experimental.DatasetCreator は分散で使用されるとき特定のオプションのためのオプション tf.distribute.InputOptions を今では取ります。
    • 評価器タスクで実行されることを目的とするプログラムのために tf.keras.experimental.SidecarEvaluator が今では利用可能です、これは tf.distribute.experimental.ParameterServerStrategy で動作する訓練クラスタを補完するために一般に使用されます (https://www.tensorflow.org/tutorials/distribute/parameter_server_training 参照)。それはまた単一ワーカー訓練や他のストラテジーでも使用できます。より詳細については docstring 参照。
    • 前処理層は experimental から core に移動しました。
      • import パスは tf.keras.layers.preprocessing.experimental から tf.keras.layers に移動しました。
    • 一貫性と明確さのための前処理層 API へのアップデート :
      • mask_token の StringLookup と IntegerLookup デフォルトが None に変更されました。これは Hashing と Embedding 層のデフォルトのマスキング動作に一致します。既存の動作を維持するには、層作成中に mask_token=”” を渡します。
      • CategoryEncoding, StringLookup, IntegerLookup と TextVectorization のための “binary” 出力モードを “multi_hot” に名前変更しました。multi-hot エンコーディングはもはや自動的には rank 1 入力を uprank しませんので、これらの層はバッチ処理されていない多次元サンプルを今では multi-hot エンコードできます。
      • CategoryEncoding, StringLookup, IntegerLookup のために新しい出力モード “one_hot” を追加しました、これは入力バッチの各要素を個別にエンコードして、必要に応じて新しい出力次元を自動的に追加します。スカラーのバッチを one-hot エンコードする古い “binary” 動作のために rank 1 入力でこのモードを使用します。
      • 正規化はもはや rank 1 入力を自動的には uprank しません、バッチ処理されていない多次元サンプルの正規化を可能にします。


  • tf.lite:
    • Tensorflow Lite をビルドするための推奨 Android NDK バージョンは r18b から r19c に変更されました。
    • mul のために int64 をサポートします。
    • ネイティブの variable な組込み ops – ReadVariable, AssignVariable をサポートします。
    • Converter :
      • TFLite の変数の実験的なサポート。変換を通して有効にするには、ユーザは tf.lite.TFLiteConverter の experimental_enable_resource_variables を True に設定する必要があります。
        Note : ミュータブルな変数はこのリリースでは from_saved_model を使用してのみ利用可能です。他のメソッドのサポートは間もなくです。

      • 古い Converter (TOCO) は次のリリースから削除されます。それは幾つかのリリースで既に deprecated となっています。


  • tf.saved_model:
    • SavedModels は今ではカスタム勾配をセーブできます。この機能を有効にするにはオプション tf.saved_model.SaveOption(experimental_custom_gradients=True) を使用してください。Advanced autodiff のドキュメントはアップデートされました。
    • オブジェクト metadata は今では deprecated で SavedModel にもはやセーブされません。


  • TF Core:
    • tf.config.experimental.get_memory_info により返される追跡された peak メモリをリセットするために tf.config.experimental.reset_memory_stats を追加しました。


  • tf.data:
    • data_service_ops.from_dataset_id と data_service_ops.distribute に target_workers param を追加しました。ユーザは “AUTO”, “ANY” または “LOCAL” (case insensitive) を指定できます。”AUTO” の場合、tf.data サービスランタイムがどのワーカーから読む取るかを決定します。”ANY” の場合、TF ワーカーは任意の tf.data サービスワーカーから読み取ります。”LOCAL” の場合、TF ワーカーはローカル in-processs tf.data サービスワーカーだけから読み取ります。”AUTO” は殆どの場合に上手く動作しますが、その一方でユーザは他のターゲットも指定できます。例えば、”LOCAL” は 、総ての TF ワーカーが tf.data サービスワーカーと同じ場所に配置される場合、RPC とデータコピーを回避する役に立ちます。現在、”AUTO” は既存の動作を保持するために任意の tf.data サービスワーカーから読み取ります。デフォルト値は “AUTO” です。

 
以上

TensorFlow 2.5.0 リリースノート

TensorFlow 2.5.0 リリースノート (翻訳)

翻訳 : (株)クラスキャット セールスインフォメーション
作成日時 : 05/14/2021

* 本ページは、github TensorFlow の releases の TensorFlow 2.5.0 の Major Features and Improvements を翻訳したものです:

 

無料 Web セミナー開催中 クラスキャット主催 人工知能 & ビジネス Web セミナー

人工知能とビジネスをテーマに WEB セミナーを定期的に開催しています。
スケジュールは弊社 公式 Web サイト でご確認頂けます。
  • お住まいの地域に関係なく Web ブラウザからご参加頂けます。事前登録 が必要ですのでご注意ください。
  • ウェビナー運用には弊社製品「ClassCat® Webinar」を利用しています。
クラスキャットは人工知能・テレワークに関する各種サービスを提供しております :

人工知能研究開発支援 人工知能研修サービス テレワーク & オンライン授業を支援
PoC(概念実証)を失敗させないための支援 (本支援はセミナーに参加しアンケートに回答した方を対象としています。)

お問合せ : 本件に関するお問い合わせ先は下記までお願いいたします。

株式会社クラスキャット セールス・マーケティング本部 セールス・インフォメーション
E-Mail:sales-info@classcat.com  ;  WebSite: https://www.classcat.com/  ;  Facebook

 

Release 2.5.0

 

主要な特徴と改良

  • Python 3.9 のためのサポートが追加されました。

  • tf.data
    • tf.data サービスは今では strict ラウンドロビン read をサポートします、これはサンプルサイズが様々である同期的な訓練ワークロードのために有用です。strict ラウンドロビン read により、ユーザは消費者が同じステップで同様のサイズのサンプルを得ることを保証できます。
    • tf.data サービスは今ではオプションの compression をサポートします。以前はデータは常に圧縮されましたが、今では compression=None を tf.data.experimental.service.distribute(…) に渡すことにより compression を無効にできます。
    • tf.data.Dataset.batch() は今では num_parallel_calls と deterministic 引数をサポートします。num_parallel_calls はマルチ入力バッチが並列に計算されるべきであることを示すために使用されます。num_parallel_calls が設定されるとき、deterministic は出力が非決定論的順序で得られることを示すために使用されます。
    • tf.data.Dataset.options() により返されるオプションはもはや mutable ではありません。
    • tf.data 入力パイプラインは今ではデバッグモードで実行できます、これはどのような非同期性、並列性や非決定論 (的性質) も無効にして map のような変換に渡されるユーザ定義関数の (trace-compiled グラフ実行に対照する) Python 実行を強制します。デバッグモードは tf.data.experimental.enable_debug_mode() を通して有効にできます。

  • tf.lite
    • 新しい MLIR-based 量子化バックエンドをデフォルトで有効にしました。
      • 新しいバックエンドは 8 ビット full 整数 post-training 量子化のために使用されます。
      • 新しいバックエンドは redundant rescale を除去して幾つかのバグを修正しています (共有重み/バイアス、非常に小さいスケール等)。
      • この変更を無効にするには tf.lite.TFLiteConverter の experimental_new_quantizer を False に設定します。

  • tf.keras
    • tf.keras.metrics.AUC は今ではロジット予測をサポートします。
    • Model.fit で新しくサポートされる入力タイプ, tf.keras.utils.experimental.DatasetCreator, を有効にしました、これは callable, dataset_fn を取ります。DatasetCreator は総ての tf.distribute ストラテジーに渡り動作することが意図され、そして Parameter Server ストラテジーのためにサポートされる唯一の入力タイプです。

  • tf.distribute
    • tf.distribute.Strategy スコープの下で tf.random.Generator を作成することが今では許容されます (tf.distribute.experimental.CentralStorageStrategy と tf.distribute.experimental.ParameterServerStrategy のためを除外して)。異なるレプリカは異なるランダム数ストリームを得ます。
    • tf.distribute.experimental.ParameterServerStrategy は今では DatasetCreator で使用されるとき Keras Model.fit による訓練をサポートします。

  • TPU 埋め込みサポート
    • _tpu_estimator_embedding.py で profile_data_directory が EmbeddingConfigSpec に追加されました。これは埋め込みに (埋め込み層の分割決定で利用される) 実行時に集められた統計情報を検索することを可能にします。

  • PluggableDevice

  • Intel-optimized TensorFlow からの oneAPI 深層ニューラルネットワーク・ライブラリ (oneDNN) CPU パフォーマンス最適化は今では公式 x86-64 Linux と Windows ビルドで利用可能です。
    • それらはデフォルトでは off です。環境変数 TF_ENABLE_ONEDNN_OPTS=1 を設定することによりそれらを有効にします。
    • GPU システムでそれらを使用することは勧めません、何故ならばそれらはまだ GPU と共に十分にテストされていないからです。

  • TensorFlow pip パッケージは今では CUDA11.2 と cuDNN 8.1.0 でビルドされています。

 
以上

TensorFlow 2.4.0 リリースノート

TensorFlow 2.4.0 リリースノート (翻訳)

翻訳 : (株)クラスキャット セールスインフォメーション
作成日時 : 12/15/2020

* 本ページは、github TensorFlow の releases の TensorFlow 2.4.0 の Major Features and Improvements を翻訳したものです:

 

無料セミナー開催中 クラスキャット主催 人工知能 & ビジネス Web セミナー

人工知能とビジネスをテーマにウェビナー (WEB セミナー) を定期的に開催しています。スケジュールは弊社 公式 Web サイト でご確認頂けます。
  • お住まいの地域に関係なく Web ブラウザからご参加頂けます。事前登録 が必要ですのでご注意ください。
  • Windows PC のブラウザからご参加が可能です。スマートデバイスもご利用可能です。

お問合せ : 本件に関するお問い合わせ先は下記までお願いいたします。

株式会社クラスキャット セールス・マーケティング本部 セールス・インフォメーション
E-Mail:sales-info@classcat.com ; WebSite: https://www.classcat.com/
Facebook: https://www.facebook.com/ClassCatJP/

 

Release 2.4.0

 

主要な特徴と改良

  • tf.distribute は tf.distribute.experimental.ParameterServerStrategy API を通してモデルの非同期訓練のための実験的サポートを導入します。更に学習するためには チュートリアル を見てください。

  • MultiWorkerMirroredStrategy は今ではステーブル API でもはや実験的とは考えられません。主要な改良の幾つかは peer failure の処理と多くのバグ修正を含みます。Multi-worker training with Keras の詳細なチュートリアルを調べてください。

  • tf.experimental.numpy と名前付けられた新しいモジュールのための実験的サポートを導入します、これは TF プログラムを書くための NumPy-互換 API です。更に学習するためには 詳細ガイド を見てください。追加の詳細は下です。

  • Ampere ベースの GPU 上の TensorFloat-32 のためのサポートを追加します。TensorFloat-32、あるいは短く TF32 は NVIDIA Ampere ベースの GPU のための math モードでデフォルトで有効にされます。

  • Keras Functional API の内部の主要なリファクタリングは完了しました、これは Functional モデルを構築する信頼性、安定性とパフォーマンスを改良するはずです。

  • Keras 混合精度 API tf.keras.mixed_precision はもはや実験的ではなくて訓練の間に16-ビット浮動小数点形式の使用を可能にし、GPU 上で 3x までそして TPU 上で 60% パフォーマンスを改善します。追加の詳細については下を見てください。

  • Tensorflow Profiler は今では サンプリングモード API を使用して MultiWorkerMirroredStrategy のプロファイリングとマルチワーカーのトレーシングをサポートします。

  • Android のための TFLite Profiler が利用可能です。更に学習するためには詳細な ガイド を見てください。

  • TensorFlow pip パッケージは今では CUDA11 と cuDNN 8.0.2 でビルドされています。

 
以上

TensorFlow 2.3.0 リリースノート

TensorFlow 2.3.0 リリースノート (翻訳)

翻訳 : (株)クラスキャット セールスインフォメーション
作成日時 : 07/28/2020

* 本ページは、github TensorFlow の releases の TensorFlow 2.3.0 を翻訳したものです:

 

Release 2.3.0

 

主要な特徴と改良

加えて TF Profiler で入力パイプライン・パフォーマンスを分析するための詳細な ガイド も調べてください。

  • tf.distribute.TPUStrategy は今ではステーブル API でもはや TensorFlow のための試験的とは考えられません。 (前の tf.distribute.experimental.TPUStrategy)
  • TF Profiler は 2 つの新しいツールを導入します : 時間に渡りモデルのメモリ使用を可視化するメモリ・プロファイラーとモデルの python 関数呼び出しをトレースすることを可能にする python トレーサー です。ユーザビリティ改良はより良い診断メッセージと、ホストとデバイスのトレース verbosity (多弁性) レベルをカスタマイズする profile オプション を含みます。
  • composite (合成) tensor 入力のサポートとともに、データ前処理演算を扱う Keras Preprocessing Layers API (tf.keras.layers.experimental.preprocessing.*) のための試験的サポートを導入します。
  • TFLite は今では変換と推論の間の動的 shape を正しくサポートします。CPU カーネルの高度に最適化されたセット、XNNPACK のための Android と iOS 上の opt-in サポート、そして GPU 上で量子化モデルを実行する ための opt-in サポートを追加しました。
  • Libtensorflow パッケージがこのリリースから GCS で利用可能です。これらのパッケージの nightly バージョンのリリース も開始しました。
  • 試験的 Python API tf.debugging.experimental.enable_dump_debug_info() は今では TensorFlow プログラムを計測して (= instrument) ファイルシステム上のディレクトリにデバッグ情報をダンプすることを可能にします。ディレクトリは Debugger V2 と呼ばれる TensorBoard 2.3 の新しい対話的ダッシュボードにより読まれて可視化できます、これはグラフ構造、Python (eager) の op 実行の履歴と intra-graph レベル、tensor の実行時 dtype, shape と数値構成、そしてコード位置を含む TensorFlow プログラムの詳細を明らかにします。

 

互換性を損なう変更

  • TF をビルドするために必要な最小 bazel バージョンを 3.1.0 に増やします。
  • tf.data
    • tf.data に以下の (breaking) 変更を行ないます。
    • C++ API: – IteratorBase::RestoreInternal, IteratorBase::SaveInternal, and DatasetBase::CheckExternalState は純粋仮想となりそして今ではサブクラスが実装を提供することが想定されます。
    • deprecated DatasetBase::IsStateful メソッドは DatasetBase::CheckExternalState のために除去されます。
    • DatasetBase::MakeIterator と MakeIteratorFromInputElement の deprecated オーバーライドは除去されます。
    • tensorflow::data::IteratorBase::SaveInternal と tensorflow::data::IteratorBase::SaveInput のシグネチャは iterator チェックポイントの間の外部状態の処理のためのデフォルトポリシーをオーバーライドすることを可能にするため SerializationContext 引数で拡張されました。これは後方互換変更ではなくそして IteratorBase の総てのサブクラスはそれに従って更新される必要があります。
  • tf.keras
    • 分散訓練失敗 & 再開始を扱うために新しい BackupAndRestore コールバックを追加します。コールバックをどのように利用するかの詳細はこの チュートリアル を見てください。
  • tf.image.extract_glimpse は centered=False と normalized=False であるケースを正しく処理するために更新されました。これは breaking 変更です、出力が (間違った) 以前のバージョンと異なるからです。この breaking 変更は tf.image.extract_glimpse と tf.compat.v2.image.extract_glimpse API エンドポイントにだけ影響することに注意してください。tf.compat.v1.image.extract_glimpse の動作は変化しません。既存の C++ カーネル ExtractGlimpse の動作もまた変化しませんので、tf.raw_ops.ExtractGlimpse を使用したセーブされたモデルは影響されません。

 

バグ修正とその他の変更

(訳注 : 翻訳を省略します、必要であれば 原文を参照してください。)

 
以上

TensorFlow 2.2.0 リリースノート

TensorFlow 2.2.0 リリースノート (翻訳)

翻訳 : (株)クラスキャット セールスインフォメーション
作成日時 : 05/07/2020

* 本ページは、github TensorFlow の releases の TensorFlow 2.2.0 を翻訳したものです:

 

Release 2.2.0

Python 2 の EOL on January 1, 2020 に従うものとして 以前にアナウンス されたように、TensorFlow 2.2 は Python 2 のためのサポートをやめます。

この変更と同時に、TensorFlow の Docker イメージ の新しいリリースは Python 3 のみを独占的に提供します。今では総てのイメージは Python 3 を利用しますので、-py3 を含む Docker タグはもはや提供されません、そして latest-py3 のような既存の -py3 タグは更新されません。

 

主要な特徴と改良

  • 文字列 tensor のためのスカラー型を std::string から tensorflow::tstring に置き換えました、これは今では ABI ステーブルです。
  • CPU/GPU/TPU のための TF2 のための新しいプロファイラー。それは入力パイプラインと TF Ops を含む、デバイスとホストパフォーマンス解析の両者を供給します。最適化の提言が可能なときにはいつでも提供されます。利用ガイドラインについては このチュートリアルガイド を見てください。
  • deprecation of swig efforts の一部としての SWIG に対して、pybind11 を使用して C++ 関数を Python にエクスポートします。
  • tf.distribute :
    • 新しく追加された tf.keras.layers.experimental.SyncBatchNormalization 層を使用してグローバル同期 BatchNormalization のためのサポートが追加されました。この層は同期訓練に参加している総てのレプリカに渡り BatchNormalization スタッツを総てのステップで同期します。
    • tf.distribute.experimental.MultiWorkerMirroredStrategy を使用した GPU マルチワーカー分散訓練のためのパフォーマンス改良。
      • NVIDIA NCCL をより良いパフォーマンスとパフォーマンス調整のために 2.5.7-1 に更新します。これに関してより多くの情報については nccl 開発者ガイド を見てください。
      • float16 の勾配 allreduce をサポートします。この サンプル 利用方法を見てください。
      • backward パス計算によるオーバーラップする勾配集積 (= aggregation) を可能にする all reduce 勾配パッキング の試験的サポート。
      • 分散ストラテジーのための experimental_run_v2 メソッドを deprecated してメソッドを run に名前変更します、何故ならばそれはもはや試験的ではないためです。
      • DistributedIterators のための CompositeTensor サポートを追加します。これは不要な関数の再追跡とメモリリークを回避する助けとなるはずです。
  • tf.keras:
    • Model.fit 主要な改良
      • 今では Model.train_step をオーバライドすることにより Model.fit でカスタム訓練ロジックを使用できます。
      • Model.fit が貴方のために処理する機能の総てについて心配することなく最先端訓練ループを容易に書くことができます (分散ストラテジー、コールバック、データ形式、ループロジック等)。
      • この関数がどのようなものであるべきかのサンプルのためにデフォルト Model.train_step を見てください。同じことが Model.test_step と Model.predict_step を通して検証と推論のために適用されます。
      • Model.inputs と Model.input_names に依拠する代わりに (これらはサブクラス Model のためにもはや設定されません、) SavedModel はそれ自身の Model._saved_model_inputs_spec attr を今では使用します。この attr は eager, tf.function, とグラフモードで設定されます。これはカスタム訓練ループ (CTL) を使用するときユーザが Model._set_inputs を手動で呼び出す必要性を取り除きます。
      • (generator から “peek” する) 最初のバッチ上で Model を呼び出すことにより generator のために動的 shape がサポートされます。これは以前は Model._standardize_user_data. Long-term で暗黙的に発生していました、DataAdapter が Model を呼び出す必要がないような解法がおそらく好ましいでしょう。
    • SavedModel 形式は今では (メトリクス、前処理層とステートフル RNN 層を含む) 総ての Keras 組込み層をサポートします。
    • Keras バッチ正規化層を fused_batch_norm で実行時 mean と average 計算を使用するように更新します。Eager モードで fused_batch_norm を使用するとき重要なパフォーマンス改善を見るはずです。
  • tf.lite:
    • TFLite の試験的な新しいコンバータをデフォルトで有効にします。
  • XLA
    • XLA は今では windows 上でビルドして動作します。総ての事前ビルド・パッケージは XLA が利用可能であれば付随します。
    • XLA は CPU と GPU 上の “compile or throw exception” セマンティクスとともに tf.function のために有効化 できます。

 

互換性を損なう変更

  • tf.keras:

    • tf.keras.applications で “top” 層の名前は “predictions” に標準化されました。これは貴方のコードが層の正確な名前に依拠している場合にのみ問題です。
    • Huber 損失関数は他の Keras losses と一貫するように更新されました。それは今では reduction 関数を適用する前にサンプル毎損失の最後の軸に渡り平均を計算します。
  • AutoGraph は tf.py_function, tf.py_func と tf.numpy_function に渡された関数をもはや変換しません。
  • このリリースで XLA_CPU と XLA_GPU デバイスは deprecate します。
  • Bazel の cc_experimental_shared_library を利用するために TF をビルドするための最小 bazel バージョンを 2.0.0 に増加します。
  • functional とサブクラス化モデルのための Keras compile/fit 動作は統一されました。
    metrics, metrics_names のような Model プロパティは今では functional モデルのための 実際のデータ上でモデルを訓練/評価 後にだけ利用可能です。metrics は model loss と output を 今では含み losses.loss_functions プロパティはモデルから除去されました。これは文書化されていないプロパティで、偶発的に公開されて今では除去されました。

 

既知の注意 (= Caveats)

  • 現在の TensorFlow リリースは今では gast バージョン 0.3.3 を必要とします。

 

バグ修正とその他の変更

(訳注 : 翻訳を省略します、必要であれば 原文を参照してください。)

 
以上

TensorFlow 2.1.0 リリースノート

TensorFlow 2.1.0 リリースノート (翻訳)

翻訳 : (株)クラスキャット セールスインフォメーション
作成日時 : 01/10/2020

* 本ページは、github TensorFlow の releases の TensorFlow 2.1.0 を翻訳したものです:

 

Release 2.1.0

TensorFlow 2.1 は Python 2 をサポートする最後の TF リリースです。Python 2 サポートは 公式に 2020 年 1 月 1 日で終了します先にアナウンスされたように、TensorFlow もまた 2020 年 1 月 1 日から Python 2 をサポートすることを停止し、そして 2019 年にはそれ以上のリリースは想定されません。

 

主要な特徴と改良

  • tensorflow pip パッケージは今では Linux と Windows の両者のためにデフォルトで (tensorflow-gpu と同じ) GPU サポートを含むます。これは NVIDIA GPU を持つ/持たないマシン上で動作します。tensorflow-gpu は依然として利用可能で、そしてパッケージサイズについて心配しているユーザのために CPU-only パッケージが tensorflow-cpu でダウンロード可能です。
  • Windows ユーザ: 公式リリースされた tensorflow Pip パッケージは新しい /d2ReducedOptimizeHugeFunctions コンパイラ・フラグを利用するために今では Visual Studio 2019 バージョン 16.4 でビルドされています。これらの新しいパッケージを使用するには、Microsoft の web サイト ここ から利用可能な、”Microsoft Visual C++ Redistributable for Visual Studio 2015, 2017 and 2019″ をインストールしなければなりません。
    • これは Windows 上でソースから TensorFlow を構築するために最小限必要なバージョンを変更はしませんが、EIGEN_STRONG_INLINE を有効にしたビルドはこのフラグなしでコンパイルするには 48 時間以上かかるかもしれません。EIGEN_STRONG_INLINE と /d2ReducedOptimizeHugeFunctions についてのより多くの情報については configure.py を参照してください。
    • 必要な DLL, msvcp140.dll (old) または msvcp140_1.dll (new) のいずれかが貴方のマシン上で欠落する場合、import tensorflow は警告メッセージをプリントします。
  • tensorflow pip パッケージは CUDA 10.1 と cuDNN 7.6 でビルドされています。
  • tf.keras
    • mixed precision のための実験的サポートが GPU と Cloud TPU 上で利用可能です。利用ガイド を見てください。
    • TextVectorization 層を導入しました、これは入力として生文字列を取ってテキスト標準化、トークン化、n-gram 生成そして語彙インデキシングを扱います。この end-to-end テキスト分類サンプル を見てください。
    • モデルがスコープの内側で構築されたのであれば、Keras .compile .fit .evaluate そして .predict は DistributionStrategy スコープの外側でも許容されます。
    • Keras .compile, .fit, .evaluate と .predict のための実験的サポートが Cloud TPUs, Cloud TPU のために、総てのタイプの Keras モデル (sequential, functional と subclassing モデル) について利用可能です。
    • 自動 outside コンパイルが今では Cloud TPU のために利用可能です。これは tf.summary が Cloud TPU でより便利に利用されることを可能にします。
    • Cloud TPU 上 DistributionStrategy と Keras で動的バッチサイズがサポートされます。
    • tf.data.Dataset に加えて、numpy データを使用する TPU 上 .fit, .evaluate, .predict のためのサポート。
    • 多くの人気のモデルのための Keras 参照実装が TensorFlow モデル・ガーデン で利用可能です。

  • tf.data
    • より良いパフォーマンスのために tf.data データセット + DistributionStrategy のための再バッチ化を変更します。データセットは少し異なって動作することにも注意してください、再バッチ化されたデータセットの濃度は常にレプリカの数の倍数になる点で。
    • tf.data.Dataset は今では (TPU pod 上を含む) 分散環境で自動データ分散とシャーディングをサポートします。
    • tf.data.Dataset のための分散ポリシーは今では 1. tf.data.experimental.AutoShardPolicy(OFF, AUTO, FILE, DATA) 2. tf.data.experimental.ExternalStatePolicy(WARN, IGNORE, FAIL) で調整できます。
  • tf.debugging
    • 無限大と NaN を含む問題の根本的原因のデバッグを助けるために tf.debugging.enable_check_numerics() と tf.debugging.disable_check_numerics() を追加します。
  • tf.distribute
    • strategy.experimental_distribute_dataset, strategy.experimental_distribute_datasets_from_function, strategy.experimental_run_v2, strategy.reduce を通して TPU と TPU pod 上のカスタム訓練ループのサポートが利用可能です。
    • strategy.scope() に加えて、tf.distribute.experimental_set_strategy() を通してグローバル分散ストラテジーのためのサポート。
  • TensorRT
    • TensorRT 6.0 は今ではデフォルトでサポートされて有効にされます。これは Conv3D, Conv3DBackpropInputV2, AvgPool3D, MaxPool3D, ResizeBilinear と ResizeNearestNeighbor を含むより多くの TensorFlow ops のためのサポートを追加します。更に、TensorFlow-TensorRT python 変換 API が tf.experimental.tensorrt.Converter としてエクスポートされます。
  • 環境変数 TF_DETERMINISTIC_OPS が追加されました。”true” か “1” に設定されるとき、この環境変数は tf.nn.bias_add を決定論的に (i.e. 再現可能な方法で) 動作させますが、現在は XLA JIT コンパイルが有効ではないときだけです。TF_DETERMINISTIC_OPS の “true” か “1” への設定はまた cuDNN convolution と max-pooling も決定論的に動作させます。これは CUDA-有効 GPU 上で実行するとき Keras Conv*D と MaxPool*D を forward と backward 方向の両者で決定論的に動作させます。

 

互換性を損なう変更

  • Operation.traceback_with_start_line を削除します、これについて私達は必要ないことを知っているためです。
  • tf.Tensor.__repr__() から id を除去しました、id は内部デバッグ以外で有用ではないためです。
  • 今では幾つかの tf.assert_* メソッドは (その時に) 入力 tensor 値が知られれば、session.run() の間ではなく、演算作成時に assertion を上げます。これはグラフ実行がエラーの結果になるときに動作を変更するだけです。これが発生するとき、noop が返されて入力 tensor は非 feedable としてマークされます。換言すれば、それらが session.run() への feed_dict 引数でキーとして使用されるのであれば、エラーが上げられます。また、幾つかの assert ops はそれをグラフ内には作成しませんので、グラフ構造は変化します。異なるグラフは異なる per-op ランダムシードという結果になるかもしれません、それらが明示的に与えられないとき (殆どの場合)。
  • 次の API はもはや実験的ではありません : tf.config.list_logical_devices, tf.config.list_physical_devices, tf.config.get_visible_devices, tf.config.set_visible_devices, tf.config.get_logical_device_configuration, tf.config.set_logical_device_configuration。
  • tf.config.experimentalVirtualDeviceConfiguration は tf.config.LogicalDeviceConfiguration と名前変更されました。
  • tf.config.experimental_list_devices は除去されました、tf.config.list_logical_devices を使用してください。

 

バグ修正とその他の変更

(訳注 : 翻訳を省略します、必要であれば 原文を参照してください。)

 
以上

TensorFlow 2.0.0 リリースノート

TensorFlow 2.0.0 リリースノート (翻訳)

翻訳 : (株)クラスキャット セールスインフォメーション
作成日時 : 10/01/2019

* 本ページは、github TensorFlow の releases の TensorFlow 2.0.0 を翻訳したものです:

 

主要な特徴と改良

TensorFlow 2.0 は単純性と使いやすさにフォーカスして、次のようなアップデートを特徴としています :

  • Keras と eager execution による容易なモデル構築。
  • どのようなプラットフォームにおいても製品レベルの堅牢なモデル配備
  • 研究のためのパワフルな実験。
  • 重複を減じて deprecated エンドポイントを除去して API 単純化。

2.0 によるベストプラクティスの詳細については、Effective 2.0 ガイド を見てください。

貴方の既存の TensorFlow 1.x モデルをアップグレードするための情報については、アップグレードマイグレーション ガイドを参照してください。チュートリアルと getting started ガイド のコレクションもまたリリースしました。

 

ハイライト

  • TF 2.0 は Keras をモデルを構築して訓練するために使用される中心的な高位 API として届けます。Keras は素早い iteration と直感的なデバッグのための eager execution とスケーラブルな入力パイプラインを構築するための tf.data とともに、Sequential, Functional とサブクラス化のような幾つかのモデル構築 API を提供します。追加の詳細のために ガイド をチェックしてください。
  • 分散ストラテジー : TF 2.0 ユーザは最小限のコード変更で訓練を分散するために tf.distribute.Strategy API を使用することができるでしょう、これは常識を超える良いパフォーマンスをもたらします。それはカスタム訓練ループに加えて Keras model.fit による分散訓練をサポートします。マルチワーカーとクラウド TPU のための実験的サポートとともにマルチ GPU サポートが利用可能です。より多くの詳細のために ガイド を確認してください。
  • Functions, not Sessions. グラフを構築して tf.Session を通してそれを実行する伝統的な宣言的プログラミングモデルはやめて (= discouraged)、通常の Python 関数を書くことにより置き換えます。tf.function デコレータを使用すれば、そのような関数はグラフに変更できます、これはリモートに、シリアライズされそしてパフォーマンスのために最適化されて実行可能です。
  • tf.train.Optimizers と tf.keras.Optimizers の統一。TF 2.0 のためには tf.keras.Optimizers を使用します。compute_gradients は public API として除去され、そして勾配を計算するためには GradientTape を使用します。
  • AutoGraph は Python 制御フローを TensorFlow 式に翻訳し、ユーザに tf.function-decorated 関数内に通常の Python を書くことを可能にします。AutoGraph はまた tf.data, tf.distribute と tf.keras API と共に使用される関数でも適用されます。
  • SavedModel への交換 (= exchange) フォーマットの統一。総ての TensorFlow エコシステム・プロジェクト (TensorFlow Lite, TensorFlow JS, TensorFlow Serving, TensorFlow Hub) は SavedModel を受け取ります。モデル状態は SavedModel にセーブされて (SavedModel から) レストアされるべきです。
  • API 変更: 多くの API シンボルは名前変更されるか除去され、そして引数名は変更されました。これらの変更の多くは首尾一貫性と明瞭さにより動機づけられています。1.x API は compat.v1 モジュールで利用可能であり続けます。総てのシンボル変更のリストは ここ で見つかります。
  • API クリーンアップ、absl-py のために tf.app, tf.flags と tf.logging の除去を含みます。
  • tf.global_variables_initializer と tf.get_global_step のようなヘルパー・メソッドによるグローバル変数はもはやありません。
  • v2 制御フローを有効/無効にするためにトグル tf.enable_control_flow_v2() と tf.disable_control_flow_v2() を追加します。
  • tf.enable_v2_behavior() と TF2_BEHAVIOR=1 の一環として v2 制御フローを有効にします。
  • API __init__.py ファイルで相対インポートを使用することに切り替えることによって殆どの TensorFlow API 参照のための autocomplete を修正しました。
  • Volta と Turing Tensor Core 上の高速化のために Auto Mixed-Precision グラフ optimizer はモデルを float16 に変換することを単純化します。この特徴は tf.train.experimental.enable_mixed_precision_graph_rewrite() で optimizer クラスをラップすることおにより有効にできます。
  • 環境変数 TF_CUDNN_DETERMINISTIC を追加します。”true” or “1” への設定は決定論的 cuDNN convolution と max-pooling アルゴリズムの選択を強制します。これが有効にされたとき、アルゴリズム選択手続き自身もまた決定論的です。

 

互換性を損なう変更

  • API をクリーンアップしてそれらをより一貫性があるようにするために多くの後方非互換な API 変更が行われました。
  • Toolchains:
    • TensorFlow 1.15 (訳注: 原文ママ) は Ubuntu 16 上 devtoolset7 (GCC7) を使用してビルドされています。これは TensorFlow のより早期のバージョンに対してビルドされた拡張との ABI 非互換性に繋がるかもしれません。
    • TensorFlow コードは今では 2 つの異なる pip パッケージを生成します : tensorflow_core、これは総てのコードを含みます (将来的にはそれは private 実装だけを含むでしょう)、そして tensorflow、これは tensorflow_core への forwarding を行なう仮想 pip パッケージです (そして将来的には tensorflow の public API だけを含むでしょう)。これを互換性を損なうとは想定していません、貴方が実装から直接的にインポートしていなければ。freeze_graph コマンドラインツールは除去しました ; frozen グラフの代わりに SavedModel が使用されるべきです。
  • tf.contrib:
    • tf.contrib は deprecated となりました、そして機能はコア TensorFlow API か、tensorflow/addonstensorflow/io のようなエコシステム・プロジェクトにマイグレートされたか、あるいは完全に除去されました。
    • TF distributions 上の tf.contrib.timeseries 依存性を除去します。
    • early_stopping.py で api のために contrib 参照を tf.estimator.experimental.* で置き換えます。
  • tf.estimator:
    • tf.estimator.DNN/Linear/DNNLinearCombined ファミリの premade estimator は tf.compat.v1.train.Optimizers の代わりに tf.keras.optimizers を使用するようにアップデートされました。optimizer= arg を渡さないか文字列を使用する場合、premade estimator は Keras optimizer を使用します。これはチェックポイント breaking です、何故ならば optimizers は別の変数を持つからです。optimizers を変換するためのチェックポイント converter ツールはリリースと共に含まれていますが、どのような変更も回避することを望む場合には、estimator の v1 バージョン: tf.compat.v1.estimator.DNN/Linear/DNNLinearCombined* に切り替えてください。
    • canned Estimators のためのデフォルト aggregation は今は SUM_OVER_BATCH_SIZE です。以前のデフォルトの挙動を維持するためには、loss aggregation メソッドとして SUM を渡してください。
    • canned Estimators は API で input_layer_partitioner arg をサポートしません。この arg を持つ場合、tf.compat.v1 canned Estimators に切り替えなければならないでしょう。
    • Estimator.export_savedmodel は export_saved_model に名前変更されました。
    • SavedModel にセーブするとき、Estimators はデフォルトの op 属性を取り除きます (= strip)。これは殆どいつも正しい挙動です、何故ならばそれはより前方互換であるからです、しかしデフォルト属性をがモデルと一緒にセーブされることを必要とする場合、tf.compat.v1.Estimator を使用してください。
    • Feature Columns はより Eager-friendly にそして Keras と一緒に動作するようにアップグレードされました。その結果、tf.feature_column.input_layer は tf.keras.layers.DenseFeatures のために deprecated となりました。v1 feature columns は shared_embedding_columns を除いて v2 の直接的な類似を持ちます、これは v1 と v2 と交差互換ではありません。代わりに tf.feature_column.shared_embeddings を使用してください。
  • tf.keras:
    • デフォルト Keras config で OMP_NUM_THREADS はもはや使用されません。スレッド数を configure するには tf.config.threading API を使用します。
    • tf.keras.model.save_model と model.save は今では TensorFlow SavedModel をセーブすることがデフォルトです。HDF5 ファイルは依然としてサポートされます。
    • tf.keras.experimental.export_saved_model と tf.keras.experimental.function は deprecated しました。代わりに tf.keras.models.save_model(…, save_format=’tf’) と tf.keras.models.load_model を使用してください。
    • 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.lite:
    • 2.0 API から lite.OpHint, lite.experimental そして lite.constant を除去しました。
  • Tensor はもはや hashable ではありませんが、代わりに == と != で element-wise に比較します。以前の挙動に戻すためには tf.compat.v1.disable_tensor_equality() を使用してください。
  • 非互換な shape を持つ Tensor や Variable 上の等値演算の遂行はもはや例外は上げられません。代わりに __eq__ は False を返して __ne__ は True を返します。
  • v2 API から tf.string_split を除去しました。
  • ResourceVariable で constraint= と .constraint の使用は deprecated しました。
  • tf2.0 のための 新しい GRU 実装として UnifiedGRU を追加します。2.0 で GRU のためのデフォルトの recurrent 活性化関数を hard_sigmoid から sigmoid に、そして reset_after を True に変更します。歴史的には recurrent 活性は hard_sigmoid です、何故ならばそれは ‘sigmoid’ より高速だからです。CPU と GPU モード間の新しい統一されたバックエンドでは、CuDNN カーネルが sigmoid を使用していますので、CPU モードのためのデフォルトもまた sigmoid に変更しました。それにより、デフォルト GRU は CPU と GPU カーネルの両者と互換になるでしょう。これは GPU でユーザに CuDNN カーネルをデフォルトで使用することを可能にして訓練で 10x パフォーマンス・ブーストを得ることを可能にします。これはチェックポイント breaking な変更であることに注意してください。ユーザが 1.x 事前訓練されたチェックポイントを使用することを望むのであれば、1.x 挙動に後退するために層を GRU(recurrent_activation=’hard_sigmoid’, reset_after=False) で構築してください。
  • CUDNN_INSTALL_PATH, TENSORRT_INSTALL_PATH, NCCL_INSTALL_PATH, NCCL_HDR_PATH は deprecated です。代わりに TF_CUDA_PATHS を使用してください、これは (CUDA ライブラリとヘッダを見つけるために検索される) base パスのカンマ区切りリストをサポートします。

最近の issues と開発進捗への洞察のためには Github 上の public プロジェクト・ステータス・トラッカー2.0 でタグ付けされた issues を参照してください。

TF 2.0 を使用する時にどのような引っ掛かり (障害) を経験しても、TF 2.0 Testing User Group で知らせてください。私達は毎週のテスティング・ミーティングに加えてサポート・メーリングリストを持ちます、そして貴方のマイグレーション・フィードバックと質問を聞くことを強く望みます。

 

バグ修正とその他の変更

(訳注 : 翻訳を省略します、必要であれば 原文を参照してください。)

 
以上

TensorFlow 2.0.0-rc2 リリースノート

TensorFlow 2.0.0-rc2 リリースノート (翻訳)

翻訳 : (株)クラスキャット セールスインフォメーション
作成日時 : 09/24/2019

* 本ページは、github TensorFlow の releases の TensorFlow 2.0.0-rc2 を翻訳したものです:

 

主要な特徴と改良

TensorFlow 2.0 は単純性と使いやすさにフォーカスして、次のようなアップデートを特徴としています :

  • Keras と eager execution による容易なモデル構築。
  • どのようなプラットフォームにおいても製品レベルの堅牢なモデル配備
  • 研究のためのパワフルな実験。
  • 重複を減じて deprecated エンドポイントを除去して API 単純化。

2.0 によるベストプラクティスの詳細については、Effective 2.0 ガイド を見てください。

貴方の既存の TensorFlow 1.x モデルをアップグレードするための情報については、アップグレードマイグレーション ガイドを参照してください。チュートリアルと getting started ガイド のコレクションもまたリリースしました。

 

ハイライト

  • TF 2.0 は Keras をモデルを構築して訓練するために使用される中心的な高位 API として届けます。Keras は素早い iteration と直感的なデバッグのための eager execution とスケーラブルな入力パイプラインのための tf.data とともに、Sequential, Functional とサブクラス化のような幾つかのモデル構築 API を提供します。追加の詳細のために ガイド をチェックしてください。
  • 分散ストラテジー : TF 2.0 ユーザは最小限のコード変更で訓練を分散するために tf.distribute.Strategy API を使用することができるでしょう、これは常識を超える良いパフォーマンスをもたらします。それはカスタム訓練ループに加えて Keras model.fit による分散訓練をサポートします。マルチワーカーとクラウド TPU のための実験的サポートとともにマルチ GPU サポートが利用可能です。より多くの詳細のために ガイド を確認してください。
  • Functions, not Sessions. グラフを構築して tf.Session を通してそれを実行する伝統的な宣言的プログラミングモデルはやめて (= discouraged)、通常の Python 関数を書くことにより置き換えます。tf.function デコレータを使用すれば、そのような関数はグラフに変更できます、これはリモートに、シリアライズされそしてパフォーマンスのために最適化されて実行可能です。
  • tf.train.Optimizers と tf.keras.Optimizers の統一。TF 2.0 のためには tf.keras.Optimizers を使用します。compute_gradients は public API として除去され、そして勾配を計算するためには GradientTape を使用します。
  • AutoGraph は Python 制御フローを TensorFlow 式に翻訳し、ユーザに tf.function-decorated 関数内に通常の Python を書くことを可能にします。AutoGraph はまた tf.data, tf.distribute と tf.keras API と共に使用される関数でも適用されます。
  • SavedModel への交換 (= exchange) フォーマットの統一。総ての TensorFlow エコシステム・プロジェクト (TensorFlow Lite, TensorFlow JS, TensorFlow Serving, TensorFlow Hub) は SavedModel を受け取ります。モデル状態は SavedModel にセーブされて (SavedModel から) レストアされるべきです。
  • API 変更: 多くの API シンボルは名前変更されるか除去され、そして引数名は変更されました。これらの変更の多くは首尾一貫性と明瞭さにより動機づけられています。1.x API は compat.v1 モジュールで利用可能であり続けます。総てのシンボル変更のリストは ここ で見つかります。
  • API クリーンアップ、absl-py のために tf.app, tf.flags と tf.logging の除去を含みます。
  • tf.global_variables_initializer と tf.get_global_step のようなヘルパー・メソッドによるグローバル変数はもはやありません。
  • v2 制御フローを有効/無効にするためにトグル tf.enable_control_flow_v2() と tf.disable_control_flow_v2() を追加します。
  • tf.enable_v2_behavior() の一部として v2 制御フローを有効にします、そして TF2_BEHAVIOR=1。
  • API __init__.py ファイルで相対インポートを使用することに切り替えることによって殆どの TensorFlow API 参照のための autocomplete を修正しました。
  • Volta と Turing Tensor Core 上の高速化のために Auto Mixed-Precision グラフ optimizer はモデルを float16 に変換することを単純化します。この特徴は tf.train.experimental.enable_mixed_precision_graph_rewrite() で optimizer クラスをラップすることおにより有効にできます。
  • 環境変数 TF_CUDNN_DETERMINISTIC を追加します。”true” or “1” への設定は決定論的 cuDNN convolution と max-pooling アルゴリズムの選択を強制します。これが有効にされたとき、アルゴリズム選択手続きもまた決定論的です。

 

互換性を損なう変更

  • API をクリーンアップしてそれらをより一貫性があるようにするために多くの後方非互換な API 変更が行われました。
  • Toolchains:
    • TensorFlow 2.0.0 は Ubuntu 16 上 devtoolset7 (GCC7) を使用してビルドされています。これは TensorFlow のより早期のバージョンに対してビルドされた拡張との ABI 非互換性に繋がるかもしれません。
    • TensorFlow コードは今では 2 つの異なる pip パッケージを生成します : tensorflow_core、これは総てのコードを含みます (将来的にはそれは private 実装だけを含むでしょう)、そして tensorflow、これは tensorflow_core への forwarding を行なう仮想 pip パッケージです (そして将来的には tensorflow の public API だけを含むでしょう)。これを互換性を損なうとは想定していません、貴方が実装から直接的にインポートしていなければ。
  • tf.contrib:
    • tf.contrib は deprecated となりました、そして機能はコア TensorFlow API か、tensorflow/addonstensorflow/io のようなエコシステム・プロジェクトにマイグレートされたか、あるいは完全に除去されました。
    • TF distributions 上の tf.contrib.timeseries 依存性を除去します。
    • early_stopping.py の api のために contrib 参照を tf.estimator.experimental.* で置き換えます。
  • tf.estimator:
    • tf.estimator.DNN/Linear/DNNLinearCombined ファミリの premade estimator は tf.compat.v1.train.Optimizers の代わりに tf.keras.optimizers を使用するように更新されました。optimizer= arg を渡さないか文字列を使用する場合、premade estimator は Keras optimizer を使用します。これはチェックポイント breaking です、何故ならば optimizers は別の変数を持つからです。optimizers を変換するためのチェックポイント converter ツールはリリースと共に含まれていますが、どのような変更も回避することを望む場合には、estimator の v1 バージョン: tf.compat.v1.estimator.DNN/Linear/DNNLinearCombined* に切り替えてください。
    • canned Estimators のためのデフォルト aggregation は今は SUM_OVER_BATCH_SIZE です。以前のデフォルトの挙動を維持するためには、loss aggregation メソッドとして SUM を渡してください。
    • canned Estimators は API で input_layer_partitioner arg をサポートしません。この arg を持つ場合、tf.compat.v1 canned Estimators に切り替えなければならないでしょう。
    • Estimator.export_savedmodel は export_saved_model に名前変更されました。
    • SavedModel にセーブするとき、Estimators はデフォルトの op 属性を取り除きます (= strip)。これは殆どいつも正しい挙動です、何故ならばそれはより前方互換であるからです、しかしデフォルト属性をがモデルと一緒にセーブされることを必要とする場合、tf.compat.v1.Estimator を使用してください。
    • Feature Columns はより Eager-friendly にそして Keras と一緒に動作するようにアップグレードされました。結果的に、tf.feature_column.input_layer は tf.keras.layers.DenseFeatures のために deprecated です。v1 feature columns は shared_embedding_columns を除いて v2 の直接的な類似を持ちます、これは v1 と v2 と交差互換ではありません。代わりに tf.feature_column.shared_embeddings を使用してください。
  • tf.keras:
    • デフォルト Keras config で OMP_NUM_THREADS はもはや使用されません。スレッド数を configure するには tf.config.threading API を使用します。
    • tf.keras.model.save_model と model.save は今では TensorFlow SavedModel をセーブすることがデフォルトです。HDF5 ファイルは依然としてサポートされます。
    • tf.keras.experimental.export_saved_model と tf.keras.experimental.function は deprecated しました。代わりに tf.keras.models.save_model(…, save_format=’tf’) と tf.keras.models.load_model を使用してください。
    • Layer は今では float32 がデフォルトで、それらの入力を自動的に Layer の dtype にキャストします。float64 を使用したモデルを持っていた場合、それは TensorFlow 2 では多分静かに float32 を使用します、そして “Layer 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.lite:
    • 2.0 API から lite.OpHint, lite.experimental そして lite.constant を除去しました。
  • Tensor はもはやハッシュ可能ではありませんが、代わりに == と != で element-wise に比較します。以前の挙動に戻すためには tf.compat.v1.disable_tensor_equality() を使用してください。
  • 非互換な shape を持つ Tensor や Variable 上の等値演算の遂行はもはや例外は上げられません。代わりに __eq__ は False を返して __ne__ は True を返します。
  • v2 API から tf.string_split を除去しました。
  • ResourceVariable で constraint= と .constraint の使用は deprecated しました。
  • tf2.0 のための 新しい GRU 実装として UnifiedGRU を追加します。2.0 で GRU のためのデフォルトの recurrent 活性化関数を hard_sigmoid から sigmoid に、そして reset_after を True に変更します。歴史的には recurrent 活性は hard_sigmoid です、何故ならばそれは ‘sigmoid’ より高速だからです。CPU と GPU モード間の新しい統一されたバックエンドでは、CuDNN カーネルが sigmoid を使用していますので、CPU モードのためのデフォルトもまた sigmoid に変更しました。それにより、デフォルト GRU は CPU と GPU カーネルの両者で互換になるでしょう。これは GPU でユーザに CuDNN カーネルをデフォルトで使用することを可能にして訓練で 10x パフォーマンス・ブーストを得ることを可能にします。これはチェックポイント breaking な変更であることに注意してください。ユーザが 1.x 事前訓練されたチェックポイントを使用することを望むのであれば、1.x 挙動に後退するために層を GRU(recurrent_activation=’hard_sigmoid’, reset_after=False) で構築してください。
  • CUDNN_INSTALL_PATH, TENSORRT_INSTALL_PATH, NCCL_INSTALL_PATH, NCCL_HDR_PATH は deprecated です。代わりに TF_CUDA_PATHS を使用してください、これは (CUDA ライブラリとヘッダを見つけるために検索される) base パスのカンマ区切りリストをサポートします。

最近の issues と開発進捗への洞察のためには Github 上の public プロジェクト・ステータス・トラッカー2.0 でタグ付けされた issues を参照してください。

TF 2.0 を使用する時にどのような引っ掛かり (障害) を経験しても、TF 2.0 Testing User Group で知らせてください。私達は毎週のテスティング・ミーティングに加えてサポート・メーリングリストを持ちます、そして貴方のマイグレーション・フィードバックと質問を聞くことを強く望みます。

 

バグ修正とその他の変更

(訳注 : 翻訳を省略します、必要であれば 原文を参照してください。)

 
以上

TensorFlow 2.0.0-rc1 リリースノート

TensorFlow 2.0.0-rc1 リリースノート (翻訳)

翻訳 : (株)クラスキャット セールスインフォメーション
作成日時 : 09/13/2019

* 本ページは、github TensorFlow の releases の TensorFlow 2.0.0-rc1 を翻訳したものです:

 

主要な特徴と改良

TensorFlow 2.0 は単純性と使いやすさにフォーカスして、次のようなアップデートを特徴としています :

  • Keras と eager execution による容易なモデル構築。
  • どのようなプラットフォームにおいても製品レベルの堅牢なモデル配備
  • 研究のためのパワフルな実験。
  • 重複を減じて deprecated エンドポイントを除去して API 単純化。

2.0 によるベストプラクティスの詳細については、Effective 2.0 ガイド を見てください。

貴方の既存の TensorFlow 1.x モデルをアップグレードするための情報については、アップグレードマイグレーション ガイドを参照してください。チュートリアルと getting started ガイド のコレクションもまたリリースしました。

 

ハイライト

  • TF 2.0 は Keras をモデルを構築して訓練するために使用される中心的な高位 API として届けます。Keras は素早い iteration と直感的なデバッグのための eager execution とスケーラブルな入力パイプラインのための tf.data とともに、Sequential, Functional とサブクラス化のような幾つかのモデル構築 API を提供します。追加の詳細のために ガイド をチェックしてください。
  • 分散ストラテジー : TF 2.0 ユーザは最小限のコード変更で訓練を分散するために tf.distribute.Strategy API を使用することができるでしょう、これは常識を超える良いパフォーマンスをもたらします。それはカスタム訓練ループに加えて Keras model.fit による分散訓練をサポートします。マルチワーカーとクラウド TPU のための実験的サポートとともにマルチ GPU サポートが利用可能です。より多くの詳細のために ガイド を確認してください。
  • Functions, not Sessions. グラフを構築して tf.Session を通してそれを実行する伝統的な宣言的プログラミングモデルはやめて (= discouraged)、通常の Python 関数を書くことにより置き換えます。tf.function デコレータを使用すれば、そのような関数はグラフに変更できます、これはリモートに、シリアライズされそしてパフォーマンスのために最適化されて実行可能です。
  • tf.train.Optimizers と tf.keras.Optimizers の統一。TF 2.0 のためには tf.keras.Optimizers を使用します。compute_gradients は public API として除去され、そして勾配を計算するためには GradientTape を使用します。
  • AutoGraph は Python 制御フローを TensorFlow 式に翻訳し、ユーザに tf.function-decorated 関数内に通常の Python を書くことを可能にします。AutoGraph はまた tf.data, tf.distribute と tf.keras API と共に使用される関数でも適用されます。
  • SavedModel への交換 (= exchange) フォーマットの統一。総ての TensorFlow エコシステム・プロジェクト (TensorFlow Lite, TensorFlow JS, TensorFlow Serving, TensorFlow Hub) は SavedModel を受け取ります。モデル状態は SavedModel にセーブされて (SavedModel から) レストアされるべきです。
  • API 変更: 多くの API シンボルは名前変更されるか除去され、そして引数名は変更されました。これらの変更の多くは首尾一貫性と明瞭さにより動機づけられています。1.x API は compat.v1 モジュールで利用可能であり続けます。総てのシンボル変更のリストは ここ で見つかります。
  • API クリーンアップ、absl-py のために tf.app, tf.flags と tf.logging の除去を含みます。
  • tf.global_variables_initializer と tf.get_global_step のようなヘルパー・メソッドによるグローバル変数はもはやありません。
  • v2 制御フローを有効/無効にするためにトグル tf.enable_control_flow_v2() と tf.disable_control_flow_v2() を追加します。
  • tf.enable_v2_behavior() の一部として v2 制御フローを有効にします、そして TF2_BEHAVIOR=1。
  • API __init__.py ファイルで相対インポートの使用に切り替えることによって殆どの TensorFlow API 参照のための autocomplete を修正しました。

 

互換性を損なう変更

  • API をクリーンアップしてそれらをより一貫性があるようにするために多くの後方非互換な API 変更が行われました。
  • Toolchains:
    • TensorFlow 1.15 は Ubuntu 16 上 devtoolset7 (GCC7) を使用してビルドされています。これは TensorFlow のより早期のバージョンに対してビルドされた拡張との ABI 非互換性に繋がるかもしれません。
    • TensorFlow コードは今では 2 つの異なる pip パッケージを生成します : tensorflow_core、これは総てのコードを含みます (将来的にはそれは private 実装だけを含むでしょう)、そして tensorflow、これは tensorflow_core への forwarding を行なう仮想 pip パッケージです (そして将来的には tensorflow の public API だけを含むでしょう)。これを互換性を損なうとは想定していません、貴方が実装から直接的にインポートしていなければ。
  • tf.contrib:
    • tf.contrib は deprecated となりました、そして機能はコア TensorFlow API か、tensorflow/addonstensorflow/io のようなエコシステム・プロジェクトにマイグレートされたか、あるいは完全に除去されました。
    • TF distributions 上の tf.contrib.timeseries 依存性を除去します。
    • early_stopping.py の api のために contrib 参照を tf.estimator.experimental.* で置き換えます。
  • tf.estimator:
    • tf.estimator.DNN/Linear/DNNLinearCombined ファミリの premade estimator は tf.compat.v1.train.Optimizers の代わりに tf.keras.optimizers を使用するように更新されました。optimizer= arg を渡さないか文字列を使用する場合、premade estimator は Keras optimizer を使用します。これはチェックポイント breaking です、何故ならば optimizers は別の変数を持つからです。optimizers を変換するためのチェックポイント converter ツールはリリースと共に含まれていますが、どのような変更も回避することを望む場合には、estimator の v1 バージョン: tf.compat.v1.estimator.DNN/Linear/DNNLinearCombined* に切り替えてください。
    • (訳注 : tf.estimator の残りの項目の翻訳は省略します、必要であれば 原文 を参照してください。)
  • tf.keras:
    • デフォルト Keras config で OMP_NUM_THREADS はもはや使用されません。スレッド数を configure するには tf.config.threading API を使用します。
    • tf.keras.model.save_model と model.save は今では TensorFlow SavedModel をセーブすることがデフォルトです。HDF5 ファイルは依然としてサポートされます。
    • tf.keras.experimental.export_saved_model と tf.keras.experimental.function は deprecated しました。代わりに tf.keras.models.save_model(…, save_format=’tf’) と tf.keras.models.load_model を使用してください。
    • Layer は今では float32 がデフォルトで、それらの入力を自動的に Layer の dtype にキャストします。float64 を使用したモデルを持った場合、それは多分 TensorFlow 2 では静かに float32 を使用します、そして “Layer 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.lite:
    • 2.0 API から lite.OpHint, lite.experimental そして lite.constant を除去しました。
  • Tensor はもはやハッシュ可能な型ではありませんが、代わりに == と != で element-wise に比較します。以前の挙動に戻すためには tf.compat.v1.disable_tensor_equality() を使用してください。
  • 非互換な shape を持つ Tensor や Variable 上の等値演算の遂行はもはや例外は上げられません。代わりに __eq__ は False を返して __ne__ は True を返します。
  • v2 API から tf.string_split を除去しました。
  • ResourceVariable で constraint= と .constraint の使用は deprecated しました。
  • tf2.0 のための 新しい GRU 実装として UnifiedGRU を追加します。2.0 で GRU のためのデフォルトの recurrent 活性化関数を hard_sigmoid から sigmoid に、そして reset_after を True に変更します。歴史的には recurrent 活性は hard_sigmoid です、何故ならばそれは ‘sigmoid’ より高速だからです。CPU と GPU モード間の新しい統一されたバックエンドでは、CuDNN カーネルが sigmoid を使用していますので、CPU モードのためのデフォルトもまた sigmoid に変更しました。それにより、デフォルト GRU は CPU と GPU カーネルで互換になるでしょう。これは GPU でユーザに CuDNN カーネルをデフォルトで使用することを可能にして訓練で 10x パフォーマンス・ブーストを得ることを可能にします。これはチェックポイント breaking な変更であることに注意してください。ユーザが 1.x 事前訓練されたチェックポイントを使用することを望むのであれば、1.x 挙動に後退するために層を GRU(recurrent_activation=’hard_sigmoid’, reset_after=False) で構築してください。
  • CUDNN_INSTALL_PATH, TENSORRT_INSTALL_PATH, NCCL_INSTALL_PATH, NCCL_HDR_PATH は deprecated です。代わりに TF_CUDA_PATHS を使用してください、これは (CUDA ライブラリとヘッダを見つけるために検索される) base パスのカンマ区切りリストをサポートします。

最近の issues と開発進捗への洞察のためには Github 上の public プロジェクト・ステータス・トラッカー2.0 でタグ付けされた issues を参照してください。

TF 2.0 を使用する時にどのような引っ掛かり (障害) を経験しても、TF 2.0 Testing User Group で知らせてください。私達は毎週のテスティング・ミーティングに加えてサポート・メーリングリストを持ちます、そして貴方のマイグレーション・フィードバックと質問を聞くことを強く望みます。

 

バグ修正とその他の変更

(訳注 : 翻訳を省略します、必要であれば 原文を参照してください。)

 
以上

TensorFlow 2.0.0-rc0 リリースノート

TensorFlow 2.0.0-rc0 リリースノート (翻訳)

翻訳 : (株)クラスキャット セールスインフォメーション
作成日時 : 08/24/2019

* 本ページは、github TensorFlow の releases の TensorFlow 2.0.0-rc0 を翻訳したものです:

 

主要な特徴と改良

TensorFlow 2.0 は単純性と使いやすさにフォーカスして、次のようなアップデートを特徴としています :

  • Keras と eager execution による容易なモデル構築。
  • どのようなプラットフォームにおいても製品レベルの堅牢なモデル配備
  • 研究のためのパワフルな実験。
  • 重複を減じて deprecated エンドポイントを除去して API 単純化。

2.0 によるベストプラクティスの詳細については、Effective 2.0 ガイド を見てください。

貴方の既存の TensorFlow 1.x モデルをアップグレードするための情報については、アップグレードマイグレーション ガイドを参照してください。チュートリアルと getting started ガイド のコレクションもまたリリースしました。

 

ハイライト

  • TF 2.0 は Keras をモデルを構築して訓練するために使用される中心的な高位 API として届けます。Keras は素早い iteration と直感的なデバッグのための eager execution とスケーラブルな入力パイプラインのための tf.data とともに、Sequential, Functional とサブクラス化のような幾つかのモデル構築 API を提供します。追加の詳細のために ガイド をチェックしてください。
  • 分散ストラテジー : TF 2.0 ユーザは最小限のコード変更で訓練を分散するために tf.distribute.Strategy API を使用することができるでしょう、これは常識を超える良いパフォーマンスをもたらします。それはカスタム訓練ループに加えて Keras model.fit による分散訓練をサポートします。マルチワーカーとクラウド TPU のための実験的サポートとともにマルチ GPU サポートが利用可能です。より多くの詳細のために ガイド を確認してください。
  • Functions, not Sessions. グラフを構築して tf.Session を通してそれを実行する伝統的な宣言的プログラミングモデルはやめて (= discouraged)、通常の Python 関数を書くことにより置き換えます。tf.function デコレータを使用すれば、そのような関数はグラフに変更できます、これはリモートに、シリアライズされそしてパフォーマンスのために最適化されて実行可能です。
  • tf.train.Optimizers と tf.keras.Optimizers の統一。TF 2.0 のためには tf.keras.Optimizers を使用します。compute_gradients は public API として除去され、そして勾配を計算するためには GradientTape を使用します。
  • AutoGraph は Python 制御フローを TensorFlow 式に翻訳し、ユーザに tf.function-decorated 関数内に通常の Python を書くことを可能にします。AutoGraph はまた tf.data, tf.distribute と tf.keras API と共に使用される関数でも適用されます。
  • SavedModel への交換 (= exchange) フォーマットの統一。総ての TensorFlow エコシステム・プロジェクト (TensorFlow Lite, TensorFlow JS, TensorFlow Serving, TensorFlow Hub) は SavedModel を受け取ります。モデル状態は SavedModel にセーブされて (SavedModel から) レストアされるべきです。
  • API 変更: 多くの API シンボルは名前変更されるか除去され、そして引数名は変更されました。これらの変更の多くは首尾一貫性と明瞭さにより動機づけられています。1.x API は compat.v1 モジュールで利用可能であり続けます。総てのシンボル変更のリストは ここ で見つかります。
  • API クリーンアップ、absl-py のために tf.app, tf.flags と tf.logging の除去を含みます。
  • tf.global_variables_initializer と tf.get_global_step のようなヘルパー・メソッドによるグローバル変数はもはやありません。

 

互換性を損なう変更

  • API をクリーンアップしてそれらをより一貫性があるようにするために多くの後方非互換な API 変更が行われました。
  • tf.contrib は deprecated となりました、そして機能はコア TensorFlow API か、tensorflow/addonstensorflow/io のようなエコシステム・プロジェクトにマイグレートされたか、あるいは完全に除去されました。
  • tf.estimator.DNN/Linear/DNNLinearCombined の premade estimator は tf.compat.v1.train.Optimizers の代わりに tf.keras.optimizers を使用するように更新されました。optimizer= arg を渡さないか文字列を使用する場合、premade estimator は Keras optimizer を使用します。これはチェックポイント breaking です、何故ならば optimizers は別の変数を持つからです。optimizers を変換するためのチェックポイント converter ツールはリリースに含まれていますが、どのような変更も回避することを望む場合には、estimator の v1 バージョン: tf.compat.v1.estimator.DNN/Linear/DNNLinearCombined* に切り替えてください。
  • Tensors & Variables 上の等値演算は今では id() の代わりに値の上で比較します。結果として、Tensors & Variables の両者はもはやハッシュ可能な型ではありません。
  • Layer は今では float32 がデフォルトで、それらの入力を自動的に Layer の dtype にキャストします。float64 を使用したモデルを持った場合、それは多分 TensorFlow 2 では静かに float32 を使用します、そして “Layer 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 を見てください。

最近の issues と開発進捗への洞察のためには Github 上の public プロジェクト・ステータス・トラッカー2.0 でタグ付けされた issues を参照してください。

TF 2.0 を使用する時にどのような引っ掛かり (障害) を経験しても、TF 2.0 Testing User Group で知らせてください。私達は毎週のテスティング・ミーティングに加えてサポート・メーリングリストを持ちます、そして貴方のマイグレーション・フィードバックと質問を聞くことを強く望みます。

 

バグ修正とその他の変更

(訳注 : 省略します、必要であれば 原文を参照してください。)

 
以上

AI導入支援 #2 ウェビナー

スモールスタートを可能としたAI導入支援   Vol.2
[無料 WEB セミナー] [詳細]
「画像認識 AI PoC スターターパック」の紹介
既に AI 技術を実ビジネスで活用し、成果を上げている日本企業も多く存在しており、競争優位なビジネスを展開しております。
しかしながら AI を導入したくとも PoC (概念実証) だけでも高額な費用がかかり取組めていない企業も少なくないようです。A I導入時には欠かせない PoC を手軽にしかも短期間で認知度を確認可能とするサービの紹介と共に、AI 技術の特性と具体的な導入プロセスに加え運用時のポイントについても解説いたします。
日時:2021年10月13日(水)
会場:WEBセミナー
共催:クラスキャット、日本FLOW(株)
後援:働き方改革推進コンソーシアム
参加費: 無料 (事前登録制)
人工知能開発支援
◆ クラスキャットは 人工知能研究開発支援 サービスを提供しています :
  • テクニカルコンサルティングサービス
  • 実証実験 (プロトタイプ構築)
  • アプリケーションへの実装
  • 人工知能研修サービス
◆ お問合せ先 ◆
(株)クラスキャット
セールス・インフォメーション
E-Mail:sales-info@classcat.com