寫在前面
使用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...