神經網路引數和tensorflow變數

2021-08-16 03:47:39 字數 2512 閱讀 9765

神經網路引數是神經網路實現分類和回歸的重要部分,要了解tensorflow如何組織、儲存以及使用神經網路中的引數的。

tensorflow中的變數tf.variable()的作用就是儲存和更新神經網路的引數。tensorflow中的變數需要指定初始值,給引數賦予初始值最為常見,所以一般也使用隨機數給tensorflow中的變數初始化;

weights=tf.variable(tf.random_normal(

[2.3

],stddev

=2

))

tensorflow中變數的初始值可以設定為隨機數、常數或者通過其它的初始值計算得到的。tensorflow支援的所有隨機數生成器:

tf.random_normal       正態分佈 

tf.truncated_normal    正太分布 ,但隨機出來的值偏離平均值超過2個標準差,那麼這個數將被重新隨機

tf.random_uniform     平均分布

tf.random_gamma      gamma分布

tensorflow也支援通過常數來初始化乙個變數。

tf.zeros()

tf.ones()

tf.fill()            tf.fill([2,3],9) ->[9,9,9],[9,9,9]]產生乙個全部為給定數字的陣列。

tf.constant

importtensorflowastf

w1=tf.variable(tf.random_normal(

[2,3

],stddev

=1,seed

=1

))w2=tf.variable(tf.random_normal(

[3,1

],stddev

=1,seed

=1

))x=tf.constant(

[0.7,0.9

])

a=tf.matmul(x,w1)

y=tf.matmul(a,w2)

withtf.session()

assess:sess.run(w1.initializer)

sess.run(w2.initializer)

print

(sess.run(y))

上面是將初始化的變數乙個個的進行初始化,tensorflow提供了一種更加便捷的方式來完成變數初始化過程,即用

tf.initialize_all_variables(),這樣就不需要乙個個的去初始化了。

變數的宣告函式tf.variables()是乙個運算,這個運算的輸出結果就是乙個張量,這個張量也是變數,所以變數是一種特殊的張量

tensorflow提供了placeholder機制用於提供輸入資料,placeholder相當於定義了乙個位置,這個位置中的資料在程式執行時指定,這樣在程式中就不需要生成大量常量來提供輸入資料,只需將資料通過placeholder出入tensorflow計算圖。placeholder的型別是不可改變的,placeholder中的維度資訊是根據提供的資料推導出來的。

x=tf.placeholder(tf.float32,shape=(1,2),name="input")

這裡利用tf.placehoder定義乙個位置代替x=tf.constant(),在新的程式中計算前向傳播結果時,需要提供乙個feed_dict來指定x的取值。feed_dict是乙個字典map,在字典中需要給出每個用到的placeholder的取值,如果某個需要的placeholder沒有被指定取值,那麼程式會報錯。

x=tf.placeholder(tf.float32,shape

=(

3,2),name

="input")

print

(sess.run(y,feed_dict

=))

feed_dict將3*2的矩陣的資料傳入到tf.placeholder中,作為x的值,注意feed_dict的值是在程式執行時給的。

卷積神經網路快速入門 基於TensorFlow

卷積神經網路 convolutional neural networks 裡面最重要的構建單元是卷積層。神經元在第乙個卷積層不是連線輸入的每乙個畫素,只是連線它們感受野1 的畫素,以此類推,第二個卷積層的每乙個神經元僅連線位於第乙個卷積層的乙個小方格的神經元。感受野卷積層 由此牽扯出感受野的定義,感...

卷積神經網路和神經網路

在神經網路中,每一層的每個神經元都與下一層的每個神經元相連 如下圖 這種連線關係叫全連線 full connected 如果以影象識別為例,輸入就是是每個畫素點,那麼每乙個畫素點兩兩之間的關係 無論相隔多遠 都被下一層的神經元 計算 了。這種全連線的方法用在影象識別上面就顯得太 笨 了,因為影象識別...

神經網路相關引數

關於建立 神經網路 段的引數說明 net feedforwardnet n,trainlm n為隱藏層大小,預設為10 trainlm 是被指定的訓練函式 levenberg marquardt 演算法t p net.trainparam.goal 0.001 goal是最小均方誤差的訓練目標 ne...