やあ子供たち。おじさんはTensorFlow(TF)というものを勉強してみたので今日はその内容のメモだよ。
でー、MSやんのWindowsな〜。ま今回いろいろ調べたつもりなんだが、まpythonはいいとして、じゃpythonでこれをしましょうといった場合の、「これ」が結局Windows環境には対応してなかったりあるいはWindowsだとセットアップが面倒だったり、で動いても本来の表示されなかったりするので、何かとWindowsはpythonやTFを勉強するには難しいな…(まWin10ならUbuntu環境もあるからそういうのでもいいのかも知れないが)と思ったので、勉強の環境としてはMacのコンソールでvimを使ってやってみた。vimは大学4年の自分、Fortranでプログラムを作っていて助教授も先輩もviしか知らない研究室にいた手前、文字通り体で覚えるしかなかったviの経験がそのまま活かせると思ったので今回TFを勉強する傍ら、改めていろいろ復習+αをしたのでそのメモもしておくぞ。
●大学4年の時分の自分ではそこまではいいよと食べず嫌いして調べなかった、今日知ったvimの便利コマンド集
- カーソル移動
- (ブロック単位のカーソル移動):eで前方移動、bでバック。
- (行頭・行末に移動)0で、行頭に移動、$で行末に移動。
- コピー&ペースト
- (文字単位)vで編集モード→コピーしたい領域を選択、y(コピー)かd(カット)し、p/Pでペースト。
- (行単位)yyで行コピー、またはddで行削除、したものを、ppでペースト
●TFの基本
さてさてTFの基本コードは以下だよ。TFは基本的に、種々のノードからなる構造を構築して、それをセッションで実行するという、「構造作成」と「セッション実行」という2段階の手続きを踏むことが基本とされる計算ライブラリのようだ。
import tensorflow as tf #バージョンの表示 print (tf.__version__); #ノード作成 node1 = tf.constant(3.0, dtype=tf.float32 ) node2 = tf.constant(4.0) #ノード情報の表示 print("\n",node1,"\n",node2) #セッションを実行し、ノードの内容を表示 session = tf.Session() print(session.run([node1,node2])) print(session.run([node1])) print("-->",session.run(node2),"<--") #足し算(足し算操作もノードなんだって) node_adder = node1+node2 #or tf.add(node1,node2) sum = session.run(node_adder) print(session.run(node1),"+",session.run(node2),"=",session.run(node_adder)) #プレイスホルダー(数値インスタンスを実行時に指定) #中括弧{}は、辞書引数とでも言うべきもの node3 = tf.placeholder(tf.float32) node4 = tf.placeholder(tf.float32) val3 = session.run(node3,{node3:3.14}) val4 = session.run(node4,{node4:1.2}) print(val3,val4) addr34 = node3 + node4 print(session.run(addr34,{node3:2.3, node4:1.5}))
上記のコードの出力は以下のようになったよ。
1.3.0 Tensor("Const:0", shape=(), dtype=float32) Tensor("Const_1:0", shape=(), dtype=float32) [3.0, 4.0] [3.0] --> 4.0 <-- 3.0 + 4.0 = 7.0 3.140000104904175 1.2000000476837158 3.8
まーここまではそうですかーといった内容だな。今日はここまで。チャオ!