咱們構想有一個神經網絡,輸入爲兩個input,中間有一個hidden layer,這個hiddenlayer當中有三個神經元,最後有一個output。網絡
圖例以下:session
在實現這個神經網絡的前向傳播以前,咱們先補充一下重要的知識。dom
咱們初始化權重w的方法爲隨機生成這些權重,通常能夠使用這些隨機生成的數據正好在正態分佈的曲線上,這也是最符合生成符合天然規律的隨機數生成方法:spa
import tensorflow as tf #通常狀況下神經網絡上的參數是w的數列,固然咱們通常使用隨機數來生成這些參數 w=tf.Variable(tf.random_normal([2,3],stddev=2,mean=0,seed=1)) #其中stddev表示標準差,mean表示均值,【】表示隨機生成正態分佈的數值的shape
這樣咱們的權重就生成了,咱們初始化input的方法有有如下幾種,僞代碼以下:code
除了這種方式,咱們還能夠使用 tf.constant([1,2,3]),來生成指定數值 tf.zeros([2,3],int32),用來生成全零 tf.ones([2,3],int32),同來生成全1 tf.fill([3,2],6),生成指定數值
下面咱們編寫一個僅有一個初始值input的神經網絡,並利用tensorflow實現對其進行前向傳播。由於初始值僅有一個,實現的方法一共有兩種,咱們來看看第一種:orm
import tensorflow as tf x=tf.constant([[0.7,0.5]])#注意這裏,寫了兩個中括號啊! w1=tf.Variable(tf.random_normal([2,3],stddev=1,seed=1)) w2=tf.Variable(tf.random_normal([3,1],stddev=1,seed=1)) #而後定義向前傳播的過程 a=tf.matmul(x,w1) y=tf.matmul(a,w2) #利用session計算前向傳播的結果 with tf.Session() as sess: init_op=tf.global_variables_initializer() sess.run(init_op) print(sess.run(y))#這裏使用run(y)打印出結果,由於最後一個輸出咱們定義的是y
輸出:blog
[[3.0904665]]
咱們利用placeholder進行數據的初始化,賦值給input,使用placeholder既能夠賦一個值,也能夠賦多個值,這也是它很常見的緣由,代碼以下:input
import tensorflow as tf x=tf.placeholder(tf.float32,shape=(1,2)) w1=tf.Variable(tf.random_normal([2,3],stddev=1,seed=1)) w2=tf.Variable(tf.random_normal([3,1],stddev=1,seed=1)) #一樣地定義前向傳播的過程 a=tf.matmul(x,w1) y=tf.matmul(a,w2) #利用session計算前向傳播的結果 with tf.Session() as sess: init_op=tf.global_variables_initializer() sess.run(init_op) print(sess.run(y,feed_dict={x:[[0.7,0.5]]}))#這裏使用run(y)打印出結果,由於最後一個輸出咱們定義的是y
輸出:it
[[3.0904665]]
結果和方法一相同。接下來就能夠對多個數據進行前向傳播了,也是利用placeholder方法io
代碼以下:
import tensorflow as tf x=tf.placeholder(tf.float32,shape=(None,2)) w1=tf.Variable(tf.random_normal([2,3],stddev=1,seed=1)) w2=tf.Variable(tf.random_normal([3,1],stddev=1,seed=1) #一樣地定義前向傳播的過程 a=tf.matmul(x,w1) y=tf.matmul(a,w2 #利用session計算前向傳播的結果 with tf.Session() as sess: init_op=tf.global_variables_initializer() sess.run(init_op) print(sess.run(y,feed_dict={x:[[0.7,0.5],[0.2,0.3],[0.5,0.5]]}))
輸出:
[[3.0904665] [1.2236414] [2.5171587]]
完畢!看起來仍是挺簡單的吧!tensorflow在工業界的應用仍是十分普遍的,想要創業和在業界工做的朋友就能夠好好了解一下了!