999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

TensorFlow讀取數據在簡單圖像識別中的應用

2019-10-21 07:37:04來學偉
現代信息科技 2019年12期

摘 ?要:本文以MNIST數據庫為例,用TensorFlow讀取數據集中的數據,并建立一個簡單的圖像識別模型。同時以TensorFlow為工具,寫一個手寫體數字識別程序,使用的機器方法是Softmax回歸。通過把占位符的值傳遞給會話,計算后運行梯度下降后,可以檢測模型訓練的結果,得到預測的標簽和實際標簽,接下來通過tf.equal函數來比較它們是否相等,并將結果保存到correct_prediction中。最后,用tf.reduce_mean可以計算數組中的所有元素的平均值,相當于得到了模型的預測準確率。該模型識別的準確率超過90%,具有一定的推廣價值。

關鍵詞:MNIST數據集;Softmax回歸;訓練模型

中圖分類號:TP181 ? ? ?文獻標識碼:A 文章編號:2096-4706(2019)12-0098-02

Abstract:This paper takes the MNIST database as an example,uses TensorFlow to read the data in the data set,and establishes a simple image recognition model.At the same time with TensorFlow tool,write a handwritten number recognition program,using Softmax regression. By passing the value of placeholder to the session,the result of model training can be detected after the gradient descent is run after calculation,and the predicted tag and the actual tag can be obtained. Next,the equality function of tf.equal is used to compare whether they are equal,and the result is saved in correct_prediction. Finally,tf.reduce_mean can be used to calculate the average value of all elements in the array,which is equivalent to the prediction accuracy of the model.The recognition accuracy of the modified model is more than 90%,which has a little promotion value.

Keywords:MNIST data set;Softmax regression;training model

0 ?引 ?言

拍攝手寫的數字而形成的圖片以及一些相對應的標記共同組成了MNIST數據集,這種數據集主要包含了兩種類型的圖像,一種是訓練用的圖像,還有一種是測試用的圖像。在原始的MNIST數據集中,我們用28行28列的矩陣來表示每一張圖像。而在TensorFlow中,變量mnist.train.images是訓練樣本,它的形狀為(55000,784)。其中,5000是訓練圖像的數量,單個圖像樣本的維數為784,也就是說任何一個圖像樣本都被一個有784維的向量來表示(28行乘以28列為784維)。

1 ?Softmax回歸

Softmax回歸是一個完整的線性的多類分類模型,事實上它是通過Logistic回歸直接從模型轉化而來的。與之不同的是Logistic回歸模型是一種兩類分類模型,而Softmax模型則是多類分類模型。在手寫數字圖像識別問題中,總共有10個不同的類別(即從0到9),我們希望對輸入的圖像計算它屬于每個類別的概率。如屬于9的概率為70%,屬于1的概率為10%等。最后模型預測的結果就是概率最大的那個類別。

Softmax函數的最核心的作用是對每個不同的類別進行“給分”,然后根據分值轉化為合理的概率值。例如:一個樣本可能屬于三個類別,第一個類別的打分為a,第二個類別的打分為b,第三個類別的打分為c。打分越高代表屬于這個類別的概率越高,但是打分本身不代表概率,因為打分的值可以是負數,也可以很大,但概率要求值必須在0~1之間,并且三類的概率加起來應該等于l。那么,如何將(a,b,c)轉換成合理的概率值呢?方法就是使用Softmax函數。

假設x是單個樣本的特征,W、b是Softmax模型的參數。在MNIST數據集中,x表示輸入的圖像,它是一個784維的向量,W表示一個矩陣,它的形狀為(784,10),b是一個10維的向量,10代表的是類別數。首先,Softmax模型的是通過各個公式來計算各個不同類別的Logit:

Logit=WTx+b

Logit同樣是一個10維的向量,它實際上可以看成樣本對應于各個類別的“打分”。接下來使用Softmax函數將它轉換成各個類別的概率值:

y=Softmax(Logit)

Softmax模型輸出的y代表各個類別的概率,還可以直接用下面的式子來表示整個Softmax模型:

y=Softmax(WTx+b)

2 ?Softmax回歸在TensorFlow中的實現

本文對應的程序為softmax_regression.py,在該程序中,使用TensorFlow定義了一個Softmax模型,實現了MNIST數據集的分類。

除了變量和占位符之外,還創建了一個y=tf.nn.softmax(tf.matmul(x,W)+b)[1]。這個y就是一個依賴x、W、b的Tensor。如果要求TensorFlow計算y的值,那么系統首先會獲取x、W、b的值,再去計算y的值。

y實際上定義了一個Softmax回歸模型,在此可以嘗試寫出y的形狀。假設輸入x的形狀為(N,784),其中N表示輸入的訓練圖像的數目。W的形狀為(784,10),b的形狀為(10,1)。那么,Wx+b的形狀是(N,10)。Softmax函數不改變結果的形狀,所以得到y的形狀為(N,10)。也就是說,一個10維的向量表示y的每一行,表示模型預測的樣本對應到各個類別的概率[2]。

模型的輸出是y,而實際的標簽為y_,它們應當越相似越好。在Softmax回歸模型中,通常使用“交叉熵”損失來衡量這種相似性[3]。損失越小,模型的輸出就和實際標簽越接近,模型的預測也就越準確。

在TensorFlow中,這樣定義交叉熵損失:

Cross_entropy = \tf. reduce_mean(-tf.reduce_sum(y_*tf.log(y)))

構造完損失之后,下面一步是如何優化損失,讓損失減小。這里使用梯度下降法優化損失,定義為:

Train_step=tf.train.GradientDescentOptimizer (0.01).minimize(cross_entropy)

TensorFlow默認會對所有變量計算梯度。在這里只定義了兩個變量W和b,因此程序將使用梯度下降法對W,b計算梯度并更新它們的值。tf.train.GradientDescentOptimizer(0.01)中的0.01是梯度下降優化器使用的學習率(Learning Rate)。

在優化前,必須要創建一個會話(Session),并在會話中對變量進行初始化操作:

sess = tf.InteractiveSession()

tf.global_variables_initializer(). run()

有了會話,就可以對變量W,b進行優化了,每次不使用全部訓練數據,而是每次提取100個數據進行訓練,共訓練1000次[4]。batch_xs,batch_ys分別是100個訓練圖像及其對應的標簽。在訓練時,需要把它們放入對應的占位符x,y_中,對應的語句是feed_dict={x:batch_xs,y_:batch_ys}。

在會話中,不需要系統計算占位符的值,而是直接把占位符的值傳遞給會話。與變量不同的是,占位符的值不會被保存,每次可以給占位符傳遞不同的值。

運行完梯度下降后,可以檢測模型訓練的結果,模型預測y的形狀是(N,10),而實際標簽y_的形狀是(N,10),其中N為輸入模型的樣本個數。tf.argmax(y,1)、tf.argmax(y_,1)的功能是取出數組中最大值的下標,可以用來將獨熱表示以及模型輸出轉換為數字標簽。假設傳入四個樣本,它們的獨熱表示y_為(需要通過sess.run(y_)才能獲取此Tensor的值):得到了預測的標簽和實際標簽,接下來通過tf.equal函數來比較它們是否相等,并將結果保存到correct_prediction中。

即第一個樣本和最后一個樣本預測是正確的,另外兩個樣本預測錯誤。可以用tf.cast(correct-prediction,tf.float32)將比較值轉換成float32型的變量,此時True會被轉換成1,False會被轉換成0。

最后,用tf.reduce_mean可以計算數組中的所有元素的平均值,相當于得到了模型的預測準確率,如[1.,0.,0.,1.]的平均值為0.5,即50%的分類準確率。

在程序softmax_regression.py中,傳入占位符的值是feed_dict={x:mnist.test.images, y_: mnist.test.labels}。也就是說,使用全體測試樣本進行測試,測試圖片一共有10000張,運行的結果為0.9185,即91.85%的準確率。因為Softmax回歸是一個比較簡單的模型。

3 ?結 ?論

本文以MNIST數據庫為例,用TensorFlow讀取數據集中的數據,并建立一個簡單的圖像識別模型。同時以TensorFlow為工具,寫一個手寫體數字識別程序,使用的機器方法是Softmax回歸模型。該模型識別的準確率超過90%,具有一定的推廣價值。

參考文獻:

[1] FesianXu.在TensorFlow中自定義梯度的兩種方法 [EB/OL].https://blog.csdn.net/LoseInVain/article/details/83108001,2018-10-19.

[2] 束陳.基于智能床墊的睡眠健康狀況研究 [D].北京:北京郵電大學,2018.

[3] BVL10101111. Deep Learning 之最優化方法 [EB/OL].https://blog.csdn.net/BVL10101111/article/details/72614711,2017-05-21.

[4] 高橋耕三,周廣文.靜止衛星之間碰撞的概率及其避免方法 [J].國外導彈技術,1984(2):20-32.

作者簡介:來學偉(1981-),男,漢族,河南靈寶人,工程碩士,講師,主要研究方向:計算機軟件開發與研究。

主站蜘蛛池模板: 91探花国产综合在线精品| 欧美在线黄| 日韩毛片在线视频| 在线免费观看a视频| 尤物国产在线| 麻豆AV网站免费进入| 国产呦精品一区二区三区网站| 国产91在线|中文| 最新亚洲人成网站在线观看| 国产在线麻豆波多野结衣| 在线免费a视频| 国产视频欧美| 亚洲人成网站观看在线观看| 精品视频福利| 毛片久久网站小视频| 精品丝袜美腿国产一区| 天堂网亚洲综合在线| 欧美亚洲国产精品第一页| 中文字幕亚洲另类天堂| 性做久久久久久久免费看| 亚洲一区无码在线| 高清精品美女在线播放| 成年人免费国产视频| 日韩免费成人| 免费一级毛片| 久久精品嫩草研究院| 中文字幕人成人乱码亚洲电影| 蜜芽一区二区国产精品| 五月天综合网亚洲综合天堂网| 午夜免费小视频| 高清色本在线www| 国产精欧美一区二区三区| 亚洲欧美另类久久久精品播放的| 日本免费一区视频| 夜夜爽免费视频| 亚洲AⅤ无码国产精品| 色综合天天视频在线观看| 熟女日韩精品2区| 99精品欧美一区| 亚洲热线99精品视频| 欧洲极品无码一区二区三区| 67194成是人免费无码| 欧美黑人欧美精品刺激| 国产精品久久自在自2021| 超级碰免费视频91| 无码一区18禁| 中文无码日韩精品| 国产网友愉拍精品| 国产丰满成熟女性性满足视频| 国产高清在线精品一区二区三区 | 美女被操黄色视频网站| 国产欧美自拍视频| 欧美福利在线观看| 美女啪啪无遮挡| 亚洲va精品中文字幕| 国产成人在线无码免费视频| 亚洲色图欧美视频| 呦女亚洲一区精品| 国产欧美日韩另类| 91亚洲免费视频| 欧美激情视频二区| 国产菊爆视频在线观看| 91精品国产麻豆国产自产在线| 亚洲啪啪网| 亚洲人成网站在线观看播放不卡| 一本大道香蕉高清久久| 亚洲人成网站在线观看播放不卡| 国产成人综合久久| 无遮挡一级毛片呦女视频| 玩两个丰满老熟女久久网| 久久午夜夜伦鲁鲁片无码免费| 亚洲AV无码精品无码久久蜜桃| 国产自在线拍| 毛片网站观看| 2021国产精品自拍| 亚洲浓毛av| 国产一区二区三区在线精品专区| 女人18一级毛片免费观看| 精品人妻无码中字系列| 国产精品va| 亚洲永久免费网站| 亚洲色图综合在线|