TensorFlow を scikit-learn のように使える TF Learn (旧 skflow )が超便利です / Introduction to an amazing TensorFlow wrapper, TF Learn (f.k.a. skflow )

TensorFlow を scikit-learn のように使える skflow が超便利です / Introduction to an amazing TensorFlow wrapper skflow

** Sorry, this note is Japanese only, but please take a look at some code snippets. Hope it helps you a bit!

これがGoogle さんの力なのか、爆発的な広がりをみせつつある TensorFlow 。
ちまたでも「人工知能ガー」とか「 Deep Learning ガー」みたいの聴くことが増えてきました。そのうち主婦も Deep Learning やってみた、とか言い出すんじゃないかという気すらする今日この頃。
ただ、テンソル とか オペレーションは全てグラフだとか、慣れない仕組みもどしどし出てきて「試してみたいけどわたしはちょっと・・・」という人も多いかもしれません。
そんな主婦にも朗報です!たった数行で TensorFlow を使って Deep Learning できますよ!

TF Learn / skflow とは

アメリカ シリコンバレー で活躍する データ サイエンティスト の一人、Yuan Terry Tang くん(リンク先英語)が開発した、TensorFlow のラッパーです。
github.com
Python で 機械学習 してる人なら知らない人はいないであろう、scikit-learn と同じように TensorFlow が使える、ということで界隈の注目を集めていたようです。

TensorFlowをscikit-learnライクに使えるskflow - Qiita
sklearn風にTensorFlowを使えるライブラリskflowを使ってみる. - ゲームAI備忘録

その skflow が、今後は TensorFlow 本体の一部として開発される模様で、現在は本体の tensorflow.contrib.learn 以下にマージされています。

TF Learn / skflow インストール方法

TensorFlow 本体に取り込まれたということで、最新の BUILD をダウンロードしてインストールするか、ソースを github から取ってきてビルド -> インストールする必要があります。
TF Learn / skflow がマージされた最新の BUILD のリンクを貼っておきます。tensorflow-0.9.0-py3-none-any.whl

datalove.hatenadiary.jp

TF Learn / skflow 使い方

すんごい簡単です。手順は、
1. TF Learn / skflow のモジュールをインポート 2. 分類(もしくは回帰)のためのモデルのインスタンスを生成
3. fit でトレーニング 4. predict で新しいデータに対する予測を行う
という流れ。
iris の分類を DNN で行うサンプルコードはこんな感じです↓

gist.github.com

・・・すごい!わたし Deep Learning してる・・・!それもたった数行のコードで!!(笑)

TF Learn / skflow を使う際の注意点

これから使う人はあまり関係ないかも。
上に紹介した qiita や @canard0328 さんの記事では、モデルに TensorFlow というプレフィクスがついた( TensorFlowDNNClassifier とか)クラスが用いられていますが、最新の TensorFlow ではこれらは非推奨となっているようです(ゆくゆくはなくなる・・・?)。
というわけで、TensorFlowXXXClassifier は XXXClassifier へ、TensorFlowXXXRegressor は XXXRegressor を代わりに使うのが今後のトレンドのようです。

その他の TensorFlow 関係の記事

datalove.hatenadiary.jp

datalove.hatenadiary.jp