Translate

2017年10月17日火曜日

TensorFlow 1.4.0 rc0 がリリースされていた

タイムラインにTensorFlow1.4.0 rc0 のリリース案内が流れてきました。
ので、何処が変わったかGitHubのREADMEを翻訳してみました。

以下、参照される場合は、at your own risk でお願いします。

-------

TensorFlow 1.4.0-rc0


リリース 1.4.0


主要な機能および改善点



  • tf.dataはコアTensorFlow APIの一部になりました
  •  APIは現在、下位互換性の保証を受けています。
  •  tf.contrib.data APIから移行する方法については、README参照のこと。
  •  主な新機能には、Dataset.from_generator() (Pythonジェネレータからの入力パイプラインを構築するため)、カスタム変換関数を適用するための Dataset.apply()メソッドがあります。
  •  tf.contrib.data.batch_and_drop_remainder()tf.contrib.data.sloppy_interleave() などいくつかのカスタム変換関数が追加されました。
  • 単純な分散Estimatorトレーニングのための train_and_evaluate を追加しました。
  • DCT-IIを計算するためのtf.spectral.dctを追加しました。
  • Mel-Frequency Cepstral Coefficientのサポートのために tf.contrib.signalを追加しました(GPUおよびグラディエントサポートあり)。
  • Windows DLLの問題のために import tensorflow 処理時セルフチェックを追加しました。
  • GPU上での tf.depth_to_space にNCHWサポートを追加しました。
  • contrib.distributions SinhArcsinh (スカラー)分布を追加しました。
  • GANEstimator オープンソースを構築しました。
  • Estimator.export_savedmodel() にすべての有効なサービスシグネチャが含まれるようになりました。
  • Estimator.export_savedmodel() には、サービング入力レシーバと利用可能なすべての ExportOutputs から構築できるすべての有効なサービングシグネチャが含まれるようになりました。 例えば、分類器は、分類フレーバな出力に加えて、回帰および予測フレーバな出力を提供することができます。これらからシグネチャを構築することで、 TF サービングはさまざまな API(ClassifyRegress、および Predict) を使用してリクエストを尊重することができます。 さらに、 serving_input_receiver_fn() は入力として機能するノードの代替サブセットを指定できるようになりました。 これは、例えば、直列化された tf.Example の代わりに生の Tensors を受け入れる分類子の予測シグネチャを生成することを可能にします。
  • tf.contrib.bayesflow.hmc を追加しました。
  • tf.contrib.distributions.MixtureSameFamily を追加しました。
  • Dataset.shuffle() は、デフォルトで各繰り返しの後に常に再シャッフルされます。
  • tf.contrib.bayesflow.metropolis_hastings を追加しました。
  • tf.contrib.distributions.Poissonlog_rate パラメータを追加しました。
  • tf.contrib.distributions.bijector API を拡張して非注入のものを処理
  • いくつかの非注入変換をハンドル
  • Java:
  •  型安全性を向上させるジェネリックス(Tensor など)(@andrewcmyers の好意より)。
  •  多次元ストリングテンソルのサポート。
  •  Linux および OS X上でカスタム操作(たとえば、tf.contribの多く)の読み込みをサポート。


バグフックスおよびその他変更



  • tf.nn.rnn_cell.DropoutWrapperは、LSTM状態を取り除くことに、今より注意が必要です。 具体的には、LSTMStateTuplec(メモリ)状態を削除することはなくなりました。 新しい動作により、LSTMとスタックされたLSTMの適切なドロップアウト動作が実現します。 このバグ修正は、公開された文献の推奨事項に従いますが、動作上の変更です。 状態のドロップアウト動作は、新しいdropout_state_filter_visitor引数を使用してカスタマイズできます。
  • tf.contrib.training.python_inputを削除しました。 新しいtf.contrib.data.Dataset.from_generatorメソッドを使用すると、より柔軟で再現性の高いパッケージで同じ動作を利用できます。
  • tf.contrib.distributions.Affineを間違ってlog-det-jacobianを修正しました。
  • tf.random_gammaが非バッチ、スカラー描画を誤って処理するのを修正しました。
  • TensorForest TreePredictionsV4Opの競合状態を解決しました。
  • Google Cloud StorageファイルシステムとHadoopファイルシステムのサポートはデフォルトビルドオプションになりました。


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 損失関数を後方互換性のない方法で並べ替えます。


貢献者への謝辞


このリリースには、Googleの多くの人々からの寄付と次のものが含まれています。


  • 4d55397500, Abdullah Alrasheed, abenmao, Adam Salvail, Aditya Dhulipala, Ag Ramesh,
  • Akimasa Kimura, Alan Du, Alan Yee, Alexander, Amit Kushwaha, Amy, Andrei Costinescu,
  • Andrei Nigmatulin, Andrew Erlichson, Andrew Myers, Andrew Stepanov, Androbin, AngryPowman,
  • Anish Shah, Anton Daitche, Artsiom Chapialiou, asdf2014, Aseem Raj Baranwal, Ash Hall,
  • Bart Kiers, Batchu Venkat Vishal, ben, Ben Barsdell, Bill Piel, Carl Thomé, Catalin Voss,
  • Changming Sun, Chengzhi Chen, Chi Zeng, Chris Antaki, Chris Donahue, Chris Oelmueller,
  • Chris Tava, Clayne Robison, Codrut, Courtial Florian, Dalmo Cirne, Dan J, Darren Garvey,
  • David Kristoffersson, David Norman, David RöThlisberger, DavidNorman, Dhruv, DimanNe,
  • Dorokhov, Duncan Mac-Vicar P, EdwardDixon, EMCP, error.d, FAIJUL, Fan Xia,
  • Francois Xavier, Fred Reiss, Freedom" Koan-Sin Tan, Fritz Obermeyer, Gao, Xiang,
  • Guenther Schmuelling, Guo Yejun (郭叶军), Hans Gaiser, HectorSVC, Hyungsuk Yoon,
  • James Pruegsanusak, Jay Young, Jean Wanka, Jeff Carpenter, Jeremy Rutman, Jeroen BéDorf,
  • Jett Jones, Jimmy Jia, jinghuangintel, jinze1994, JKurland, Joel Hestness, joetoth,
  • John B Nelson, John Impallomeni, John Lawson, Jonas, Jonathan Dekhtiar, joshkyh, Jun Luan,
  • Jun Mei, Kai Sasaki, Karl Lessard, karl@kubx.ca, Kb Sriram, Kenichi Ueno, Kevin Slagle,
  • Kongsea, Lakshay Garg, lhlmgr, Lin Min, liu.guangcong, Loki Der Quaeler, Louie Helm,
  • lucasmoura, Luke Iwanski, Lyndon White, Mahmoud Abuzaina, Marcel Puyat, Mark Aaron Shirley,
  • Michele Colombo, MtDersvan, Namrata-Ibm, Nathan Luehr, Naurril, Nayana Thorat, Nicolas Lopez,
  • Niranjan Hasabnis, Nolan Liu, Nouce, Oliver Hennigh, osdamv, Patrik Erdes,
  • Patryk Chrabaszcz, Pavel Christof, Penghao Cen, postBG, Qingqing Cao, Qingying Chen, qjivy,
  • Raphael, Rasmi, raymondxyang, Renze Yu, resec, Roffel, Ruben Vereecken, Ryohei Kuroki,
  • sandipmgiri, Santiago Castro, Scott Kirkland, Sean Vig, Sebastian Raschka, Sebastian Weiss,
  • Sergey Kolesnikov, Sergii Khomenko, Shahid, Shivam Kotwalia, Stuart Berg, Sumit Gouthaman,
  • superzerg, Sven Mayer, tetris, Ti Zhou, Tiago Freitas Pereira, Tian Jin, Tomoaki Oiki,
  • Vaibhav Sood, vfdev, Vivek Rane, Vladimir Moskva, wangqr, Weber Xie, Will Frey,
  • Yan Facai (颜发才), yanivbl6, Yaroslav Bulatov, Yixing Lao, Yong Tang, youkaichao,
  • Yuan (Terry) Tang, Yue Zhang, Yuxin Wu, Ziming Dong, ZxYuan, 黄璞

問題を提起した人、解決を助けた人、、質問した人、質問に答えてくれた人に感謝しています。


ダウンロード



-----

ざっとながめると、新機能というより Contrib の組み入れが中心なかんじか。

新しいモデルなどはまだついていけてないのでよくわからないし..


ちなみにDocker Hubのほうも既に更新されていて tensorflow/tensorflow のlatestはすでに1.4.0-rc0になっていた。


追記2017/11/7

今朝TwitterタイムラインにGoogle中の人が1.4.0の紹介したい機能に関する記事をながしていたので、ここに勝手翻訳文を載せておきます。
------

TensorFlow 1.4.0 の発表

2017年11月7日火曜日
TensorFlowチームによる投稿
TensorFlowリリース1.4が公開されました - これは大きなものです!私たちは誰もが楽しむことを願って、新しくてエキサイティングな機能をいくつか紹介します。

Keras

1.4では Keras が tf.contrib.keras からコアパッケージ tf.keras に移行しました。Keras は非常に一般的な機械学習フレームワークであり、ハイレベルのAPIで構成され、アイデアと実装の間の時間を 最小限に抑えます。Keras は Estimator API を含む他のコアTensorFlow 機能とスムーズに統合します。実際には、tf.keras.estimator.model_to_estimator 関数を呼び出すことによって任意のKerasモデルから直接Estimatorを構築することができます。 Keras が TensorFlow コアに組み込まれているので、実際の業務で稼動するワークフローのために使用することができます。

Keras を始めたい方は、次のドキュメントを読んで下さい:
Estimator を始めたい方は、この記事を読んで下さい。

Datasets

私たちは、Dataset API の ( tf.contrib.data から) コアパッケージ tf.data 移行を発表できることを喜んでいます。1.4 版の Dataset API では、Python ジェネレータのサポートも追加されています。TensorFlow モデルの入力パイプラインを作成するには、 Dataset API を使用することを強く推奨します。


  • Dataset API は過去のAPIより機能的( feed_dict もしくはキューベースパイプライン)
  • Dataset API のパフォーマンスが向上
  • Dataset API がクリーンで使いやすく
今後は過去のAPIの更新ではなく、Dataset API の開発にフォーカスしていく予定です。

Dataset API を開始するには、次のドキュメントを読んでください。


Estimator による分散トレーニングおよび評価

1.4 ではユーティリティ機能 tf.estimator.train_and_evaluate が導入されており、Estimator モデルのトレーニング、評価、およびエクスポートが簡単になりました。この機能は、ローカル実行をサポートしながら、トレーニングと評価のための分散実行を可能にします。

その他の機能拡張

これまで紹介してきた機能以外にも、1.4 ではいくつかの追加機能が導入されています。詳細はリリースノートを参照してください。

TensorFlow 1.4 のインストール

pip install を使用して TensorFlow リリース 1.4 をインストールできるようになりました。
# 注意:次のコマンドは既存の TensorFlow を上書きインストールします
$ pip install --ignore-installed --upgrade tensorflow
# Python 2.7 の場合は pip
# Python 3.x の場合は pip3

tensorflow.org のドキュメントを 1.4 に更新しました。

TensorFlow のそれぞれの拡張は異なる寄稿者によってなされています。 TensorFlow の開発を手伝ってくださったみなさん、本当にありがとうございました! GitHub のソースコードを開発したり、 Stack Overflow に関する質問に答えるのを手伝ったりして、コミュニティに参加して貢献者になることを躊躇しないでください。

このリリースのすべての機能を楽しんでください。

Happy TensorFlow Coding!
-----

どうも1.4.0のポイントはEstimatorらしい。

この日本語記事を読んでも、これからモデルを作る人はこのEstimator のAPIにしたがって作ってね、ということなのだとおもうが..

サンプルが全然ない..

既存のモデルもパーセプトロンぐらいしか無い..

(この文書を書いている時点の)T2Tすら、Estimator実装してないし..

やっぱ Keras API をナカ実装に使って、外見APIはEstimator習って書けってのは
いっちょかみ機械学習開発者にはまだまだハードルが高い..

Keras ベースにJavaライブラリを標準化して、
中の人をAbstractFactoryでTensorFlowやChsainer、CNTK、Theanoにかえられるようにして、
Estimator はGenericServletみたいにJava API化して
あ、もちろんDataset API( input_fn )もいいかんじにTemplateMethodにして
くれないと日本のサラリーマンSEには厳しいのよ..

たのむ、頑張ってくれ Google Brainチーム..

0 件のコメント:

既存アプリケーションをK8s上でコンテナ化して動かす場合の設計注意事項メモ

既存アプリをK8sなどのコンテナにして動かすには、どこを注意すればいいか..ちょっと調べたときの注意事項をメモにした。   1. The Twelve Factors (日本語訳からの転記) コードベース   バージョン管理されている1つのコードベースと複数のデプロイ 依存関係 ...