Tensorflow學習筆記 二 MNIST入門

2021-07-22 12:52:05 字數 1763 閱讀 3004

寫在前面

使用softmax模型之前,對softmax進行簡單的介紹:

我們希望能夠針對每個測試都能得到這張屬於某個數字的概率,而softmax 回歸就是:計算這張屬於0~9這十個數字的概率,然後將其中最大概率設為1,其他設為0的處理。

所以,softmax回歸處理第一步:對中的每乙個畫素加權求和,計算概率。計算某張是數字i的概率就可以通過:ev

iden

cei=

∑j(w

i,j∗

xj)+

bi來計算。其中w是權重,x是對每乙個畫素進行加權求和,b是偏置量。

得到10個evidence之後組成向量,通過softmax函式處理得到」one-hot vectors」。這個過程可以通過公式:y=

soft

max(

wx+b

) 表示。

import tensorflow as tf//匯入tensorflow包

x = tf.placeholder(tf.float32, [none, 784])//x是佔位符,用來儲存資料,第乙個引數是none表示可以是任意張

w = tf.variable(tf.zeros([784,10]))//權重值,初始化為0

b = tf.variable(tf.zeros([10]))//偏置量

y = tf.nn

.softmax(tf.matmul(x,w) + b)//實現模型softmax(wx+b)

評估指標——交叉熵

在機器學習中,對於每乙個實現都需要乙個指標來評估這種模型的效率,在這裡使用交叉熵來表示。

y_ = tf.placeholder("float", [none,10])//用於輸入正確的值

cross_entropy = -tf.reduce_sum(y_*tf.log(y))//計算交叉熵 y是計算結果,y_是實際值

train_step = tf.train

.gradientdescentoptimizer(0.01).minimize(cross_entropy)

//使用反向傳播演算法降低交叉熵的值來訓練資料

//至此模型已經設定好了,我們先對所有的變數進行初始化

init = tf.initialize_all_variables()

//開啟乙個回話 並進行初始化

sess = tf.session()

sess.run(init)

//訓練模型,迭代1000次

for i in range(1000):

batch_xs, batch_ys = mnist.train

.next_batch(100)

sess.run(train_step, feed_dict=)

//模型檢測

//argmax可以獲得某個tensor物件在某一維上的其資料最大值所在的索引值。由於標籤向量是由0,1組成,因此最大值1所在的索引位置就是類別標籤,correct_prediction就是判斷結論是否正確的乙個boolean結果

correct_prediction = tf.equal(tf.argmax(y,1), tf.argmax(y_,1))

//將bool值轉換成0,1值再取平均值就是我們的結果

accuracy = tf.reduce_mean(tf.cast(correct_prediction, "float"))

//最後輸出結果

print sess.run(accuracy, feed_dict=)

Tensorflow速成學習筆記 二

根據tensorflow實戰google深度學習框架的樣例,詳細註解簡單神經網路 的各部分作用如下 import tensorflow as tf from numpy.random import randomstate 定義訓練資料batch的大小 batch size 8 定義神經網路的引數,每...

tensorflow學習筆記

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

Tensorflow學習筆記

1.如何在虛擬機器中安裝tensor flow 1 首先安裝pip pip install 2 pip install 2.學習tensorflow需要學習 python and linux 3.使用 tensorflow,你必須明白 tensorflow 1 使用圖 graph 來表示計算任務.2...