誰でも出来るTensor基礎2!入力値を決めるにはどうすればいいの?公式Tensorflow入門v1.0

誰でも出来るTensor基礎2!入力値を決めるにはどうすればいいの?公式Tensorflow入門v1.0

ども!アイーンです。

 

いや~

分かるって体験はいいですね~^□^

学習ってのは

時間を忘れてやってしまう

というレベルの体験でありたい。

そのためには今の自分が

スムーズに理解できるレベルが

うれしいところです。

 

 

それではTensorFlow基礎の基礎

やっていきましょう。

 

前回は定数を使って色々してみました。

今回は外部入力を受け入れるパラメータからいってみましょう。

 

 

 

入力パラメータの定義

前回の記事からの続きになります。

 

import tensorflow as tf

sess = tf.Session()

の記述は必須です。

 

a = tf.placeholder(tf.float32)

b = tf.placeholder(tf.float32)

adder_node = a + b

 

tf.placeholder(tf.float32)と書くと

プレースホルダーという外部入力を受け付けるパラメータとして設定できます。

ここでは、aとbという変数をプレースホルダーに指定して

新しく

adder_node = a + b

という足し算させるノードを作ります。

 

こういったノードを作ることを、”グラフを作る”というそうです。

出来上がったグラフをsess.runに入れてみます。

 

print(sess.run(adder_node, {a : 3 , b : 4.5}))

左側にはグラフ、右側には入力値を指定します。

へ~、中括弧{}で指定するんだ~。

 

結果として出力されるのは a + b 

7.5

 

足し算が出来て喜ぶのは

かれこれ25年ぶりです。

 

また、numpyと同様に

2次元以上の計算もできます。

まぁこれ出来ないとディープラーニング出来ないっス。

入力値をベクトル(2次元)にしてみましょう。

 

print(sess.run(adder_node , {a : [1 , 3], b : [2 , 4]}))

カッコが多い。

出力結果は

3と7です。

 

ちなみにこのグラフを

TensorBoardという

自動でノードのつながりを図解してくれるもので表示してみると

こうなります。

 

ちなみにこの画像は公式から持ってきてます。

公式は、まだこのTensorBoardの使い方は教えてくれていません。

私にはまで使いこなす力が無いとおっしゃるのですか師匠!、いや公式よ。

はやくそこまで行きたい。

 

次に、このadder_nodeの他に

処理を追加してみましょう。

 

add_and_triple = adder_node * 3

print(sess.run(add_and_triple, { a : 3 , b : 4.5 }))

 

だからカッコが。

 

この処理を図解してみると

 

おお、繋がってる繋がってるw

・・・でもyってどっから出てきたんだ?

 

師匠の判断は正しかったことを再確認しつつ

まとめてみましょう。

 

まとめ

プレースホルダーの概要が分かりました。

これで単純なグラフの作成が可能になりましたね。

初めて見たときは

名前的に”場所を保持するもの”=”領主”ってイメージでしたが。

 

これで貴方の肩書は「PLACEHOLDER ○○」です。

月曜深夜0時より放送開始!

みんな、見てくれよな!