TensorFlow : Get Started : 序説 (翻訳/解説)
翻訳 : (株)クラスキャット セールスインフォメーション
日時 : 01/16/2016
* 本ページは、TensorFlow の本家サイトの Get Started – Introduction を翻訳した上で適宜、補足説明したものです:
https://www.tensorflow.org/versions/master/get_started/index.html
* サンプルコードの動作確認はしておりますが、適宜、追加改変しています。
* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。
Tensorflow を始めてみましょう!
しかし始める前に TensorFlow のコードが Python API でどのように見えるのか簡単に見てみましょう。どこへ向かっているか感覚が掴めるでしょう。
ここに簡単な Python プログラムがあります。これは二次元のデータを生成し、そして直線をそれらに最適化するものです。
import tensorflow as tf import numpy as np # y = x * 0.1 + 0.3 となる、ダミーのデータポイント x, y を NumPy で作成します。 x_data = np.random.rand(100).astype("float32") y_data = x_data * 0.1 + 0.3 # y_data = W * x_data + b となる W と b の適正値を見つけます。 # (私たちは W が 0.1、b が 0.3 であるべきと知っていますが、 # Tensorflow はそれを私たちのために見つけてくれます。) W = tf.Variable(tf.random_uniform([1], -1.0, 1.0)) b = tf.Variable(tf.zeros([1])) y = W * x_data + b # random_uniform は一様分布から乱数生成。第一引数は shape # zeros は全ての要素を 0 に設定したテンソルを作成。第一引数は shape # 平均二乗誤差を最小化します。 # アルゴリズムは勾配降下法。第一引数は学習率。 loss = tf.reduce_mean(tf.square(y - y_data)) optimizer = tf.train.GradientDescentOptimizer(0.5) train = optimizer.minimize(loss) # 開始前に変数を初期化します。これを最初に'実行'します。 init = tf.initialize_all_variables() # グラフを launch します。 sess = tf.Session() sess.run(init) # 直線を最適化します。 for step in xrange(201): sess.run(train) if step % 20 == 0: print(step, sess.run(W), sess.run(b)) # ベストフィットが W: [0.1], b: [0.3] と学習します。
このコードの最初の部分はデータフローグラフを組み立てています。TesorFlow はセッションが生成され関数が呼ばれるまでは、実際には計算を実行しません。
更に貴方の興味をそそるために、古典的な機械学習の問題が TensorFlow でどのようになるのか確認してみることを提案します。ニューラルネットワークの世界でもっとも「古典的な」古典的問題は MNIST 手書き数字の分類問題です。ここでは2つの紹介を提供します。一つは機械学習の入門者向けで、もう一つは専門家向けです。貴方が既に他のソフトウェアパッケージで幾ダースもの MNIST モデルを学習させたことがあるのであれば、以下を参照してください:
専門家のための深層 MNIST
https://tensorflow.classcat.com/2016/02/16/tensorflow-tutorials-deep-mnist-for-experts/
もし貴方が MNIST について聞いたことがないのであれば、以下を参照するのが良いです:
TensorFlow : TUTORIALS : ML 初心者向けの MNIST(翻訳/解説)
https://tensorflow.classcat.com/2016/02/03/tensorflow-tutorials-mnist-for-ml-beginners/
両者の間のどこかに位置するならば、後者を簡単に眺めてから前者を参照すれば良いでしょう。
TensorFlow を学びインストールしたいという確信があれば、これらをスキップして先に突進することができます。心配には及びません、依然として MNIST に辿り着きます。 — TensorFlow の特徴を詳細説明する技術チュートリアルで MNIST を例題として扱いますので。
推奨する次のステップ
* 基本的な使い方
https://tensorflow.classcat.com/2016/02/03/tensorflow-get-started-basic-usage/
* TensorFlow 技法 101
https://tensorflow.classcat.com/2016/02/03/tensorflow-tutorials-mechanics-101/
以上