tensorflow學習筆記(6) 訓練模型

2021-08-19 14:22:32 字數 1244 閱讀 8683

在神經網路優化演算法中,用的最多的是反向傳播演算法。

通過tensorflow實現反向傳播演算法的第一步是使用tensorflow來表達乙個batch, tensorflow中提供了placeholder機制用於提供輸入資料。

placeholder相當於定義了乙個位置,這個位置中的資料在程式執行時再指定。這樣在程式中只需要將資料通過placeholder傳入計算圖中。

通過placeholder實現前向傳播:

import tensorflow as tf

w1=tf.variable(tf.random_normal([2,3],stddev=1))

w2=tf.variable(tf.random_normal([3,1],stddev=1))

#定義placeholder

x=tf.placeholder(tf.float32,shape=(1,2),name="input")#維度:二維陣列,長度為1

a=tf.matmul(x,w1)

y=tf.matmul(a,w2)

sess=tf.session()

init_op=tf.initialize_all_variables()

sess.run(init_op)

print(sess.run(y,feed_dict=))

在得到了乙個batch的前向傳播結果後,需要定義乙個損失函式來說明此時**值與真實值的差距。然後通過反向傳播演算法來調整神經網路引數的取值使得差距變小。

#定義損失函式

cross_entropy=-tf.reduce_mean(

y*tf.log(tf.clip_by_value(y,1e-10,1.0))

)#定義學習率

learning_rate=0.001

#定義反向傳播演算法來優化引數

train_step=\

tf.train.adamoptimizer(learning_rate).minimize(cross_entropy)

在上述**中,cross_entropy定義了真實值與**值之間的交叉熵,是分類問題中乙個常見的損失函式。

train_step定義了反向傳播的優化方法,執行sess.run(train_step)可以對所有變數進行優化,使得損失函式更小。

Tensorflow學習筆記No 6

本篇主要講述什麼是標準化,為什麼要標準化,以及如何進行標準化 新增bn層 傳統機器學習中標準化也叫做歸一化。一般是將資料對映到指定的範圍,用於去除不同維度資料的量綱以及量綱單位 說白了就是讓資料盡可能處於某個範圍內 資料標準化讓機器學習模型看到的不同樣本彼此之間更加相似,這有助於模型的學習與對新資料...

Tensorflow學習之旅 6

暑假就在接觸tensorflow了,但是一直斷斷續續的,所以現在又開始撿起來繼續學。ps 我用的 源於 大佬寫的很好,我也是跟著他的 在他的 上,寫上 自己的理解。構造乙個3層的網路 輸入層乙個結點,隱層3個結點,輸出層乙個結點 輸入層的維度是 n,1 隱層的維度是 1,10 輸出層的維度是 10,...

tensorflow學習筆記

tensorflow安裝可以直接通過命令列或者原始碼安裝,在此介紹tensorflow8命令列安裝如下 安裝tensorflow sudo pip install upgrade 另外,解除安裝tensorflow命令為 sudo pip uninstall tensorflow tensorflo...