tensorflow學習筆記(1)-基本語法和前向傳播
tensorflow學習筆記(1)
(1)tf中的圖
圖中就是一個計算圖,一個計算過程。 圖中的constant是個常量
計算圖只描述過程,不執行。
(2)tf中的會話
那麽怎麽計算呢?
tensorflow有個會話是專門用來計算的
import tensorflow as tf x=tf.constant([[1.0,2.0]]) w=tf.constant([[3.0],[4.0]]) y=tf.matmul(x,w) print(y) with tf.Session() as sess:print(sess.run(y))
這裏定義了個矩陣相乘的運算,並用會話結構 with tf.session() as sess:計算
打印結果為 1*3+2*4=11沒毛病
(3)tf中的變量
tf中遍歷就是神經元上的參數或者說是權重w,我們要改變的就是這個參數。
seed是隨機數種子,不加的話每次生成的都不一樣
除了正太分布tf還提供均勻分布,還有零矩陣和1矩陣的初始化,還有填充矩陣和constant矩陣的初始化方法
變量的初始化:在sess.run()中使用tf.global_variablies_initializer()
如
init_op=tf.global_varibles_initializer()
sess.run(init_op)
(4)tf.placeholder
這是個占位的作用,可以理解為申明定義變量
如x=tf.placeholder(tf.float32,shape=(1,2))這是聲明
然後餵入一組數據
sess.run(y,feed_dict={x:[[0.5,0.6]]})
餵入多組數據
x=tf.placeholder(tf.float32,shape=(None,2))#none表示不限樣本數
sess.run(y,feed_dict={x:[[0.1,0.2],[0.2,0.3],[0.4,0.5]]})
(5)神經網絡四部曲
1.準備數據和提取特征值輸入神經網絡
2.搭建NN結構,先搭建圖然後運算(前向傳播)(計算輸出)
3.大量數據餵入NN,叠代優化參數(權重和偏置)(NN反向傳播算法)
4.用訓練好的模型分類預測
(5)這裏實現一個簡單2層網絡模型
# -*- coding: utf-8 -*-
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) #用會話計算結果 with tf.Session() as sess: init_op=tf.global_variables_initializer() sess.run(init_op) print(sess.run(y))
運行結果如下
這是餵入多組數據的方法
這裏的特征值我們已經固定,我們也可以先用placeholdr占位,然後再sess.run()裏面餵入feed_dict={xxx}
tensorflow學習筆記(1)-基本語法和前向傳播