はじめに
静岡Developers勉強会では、今年の勉強会のテーマとして「人工知能ハンズオン」を予定しています。
前記事にて、自PCに「TensorFlow」をインストールしてみました。
インストールしただけで、「TensorFlow」がどういったものなのかをまったく理解出来ていません。
ネットで検索した幾つかのサイトを参考にこれから理解していこうと思います。
エディタについて
TensorFlowはPythonを使ってプログラムしていくのですが、エディタが無いことにはプログラムを組みにくいですよね。
以前、静岡Developers勉強会で「実践コンピュータービジョン」を行った際、Python向け統合環境(IDE)の「PyCharm」を使っていました。
その後、もう少し手軽なものとして「IPython Notebook」というPythonのコードを含んだWebページを作成できるものを教わったので、今回はこちらを使用していきます。
IPython Notebookは、その後に多言語対応したこともあって、「Jupyter」という名前に変更されていました。
Jupyter Notebook(IPython)のインストール
下記サイトを参考に「Jupyter Notebook」をインストールしました。
www.task-notes.com
※Anacondaでは最初からインストール済みなんですが、自分はTensorFlow専用の環境(tensorenv)を作成しているため、インストールする必要がある。
tensorenvの環境を有効にしてから、pipコマンドでインストール
$ source activate tensorenv (tensorenv)$ pip install jupyter
Jupyterの起動
(tensorenv)$ jupyter notebook
Webブラウザが起動しますので、そこからanaconda3/envs/tensorenvフォルダまで移動させます。
更にtensorenvフォルダ配下に移動して、右横の「New」で新規ファイルを「Python 3」で作成します。
それでは、下記サイトの演算を実際に実行してみましょう。
qiita.com
では、実際にTensorFlowを使って計算してみます。最初は、以下の式を書いてみます
import tensorflow as tf def x2_plus_b(x, b): _x = tf.constant(x) _b = tf.constant(b) result = tf.square(_x) result = tf.add(result, _b) return result
print resultではエラーとなったため、print(result)に修正しました。
with tf.Session() as sess: result = sess.run([x2_plus_b(2., 3.)]) print(result)
実行結果(printの出力)は以下のようになります。
なので、きちんと計算できていることがわかります。
TensorBoardによる可視化
TensorFlowには、TensorBoardという強力なビジュアライゼーションツールが付いている点も特徴の一つになっています。
先ほどの続きとして下記ソースを入力します。
import tensorflow as tf def monitor_calculation(x, b): title = "b = {0}".format(b) c = x2_plus_b(float(x), float(b)) s = tf.scalar_summary(title, c) m = tf.merge_summary([s]) # if you are using some summaries, merge them return m with tf.Session() as sess: writer = tf.train.SummaryWriter("log", graph_def=sess.graph_def) xaxis = range(-10, 12) for b in range(3): for x in xaxis: summary_str = sess.run(monitor_calculation(x, b)) writer.add_summary(summary_str, x)
これを実行すると、ログがフォルダ(/home/yaju/anaconda3/envs/tensorenv/log)に出力されます。
Jupyterの停止
TensorBoardのコマンドはターミナルで行うので、Jupyterの停止する必要があります。
停止するには、ターミナルにて「Ctrl + C」キーを押します。
追記 2016/04/07
Jupyterの右横にある「New」に「Terminal」がありました。
これを使えば、Jupyterを停止する必要はありません。
TensorBoardの実行
logdirには絶対パスを指定します。
(tensorenv)$ tensorboard --logdir=/home/yaju/anaconda3/envs/tensorenv/log Starting TensorBoard on port 6006 (You can navigate to http://0.0.0.0:6006)
Webブラウザにて、下記URLを入力します。
localhost:6006
今回はここまでとします。