日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

mnist 数据集的识别源码解析

發布時間:2025/3/19 编程问答 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mnist 数据集的识别源码解析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在基本跑完識別代碼后,再來談一談自己對代碼的理解;

1? ? ? 前向傳播過程文件(mnist_forward.py)

第一個函數get_weight(shape, regularizer);

? ? ? ? 定義了w的初值和正則化損失加入losses中

第二個函數get_bias(shape):

? ? ? ? 對參數b進行設定

第三個函數forward(x, regularizer):

? ? ? ? 加入激活函數tf.nn.relu(tf.matmul(x, w1) + b1)

? ? ? ? 對輸出y進行設定

此段代碼在前面博客中講過,比較簡單,就不再過多敘述

2? ?反向傳播過程文件(mnist_backward.py)?

ce = tf.nn.sparse_softmax_cross_entropy_with_logits(logits=y, labels=tf.argmax(y_, 1))

在計算交叉熵之前,通常要用到softmax層來計算結果的概率分布。因為softmax層并不會改變最終的分類結果(排序),所以,tensorflow將softmax層與交叉熵函數進行封裝,形成一個函數方便計算:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?tf.nn.softmax_cross_entropy_with_logits(logits= , labels=)。

為了加速計算過程,針對只有一個正確答案(例如MNIST識別)的分類問題

這里用到softmax()函數;可以參考我前面博文。
地址:
https://www.cnblogs.com/fcfc940503/p/10983906.html
https://www.cnblogs.com/fcfc940503/p/10985129.html

讀入數據

? xs, ys = mnist.train.next_batch(BATCH_SIZE)

_, loss_value, step = sess.run([train_op, loss, global_step], feed_dict={x: xs, y_: ys})

用 mnist.train.next_batch(BATCH_SIZE)隨機從訓練集中抽取BATCH_SIZE個樣本輸入神經網絡;feed_dict={x: xs, y_: ys}喂入x和y_; 測試過程文件(mnist_test.py)?
在測試過程中,導入了引入 time 模塊、tensorflow、input_data、前向傳播mnist_forward、反向傳播 mnist_backward 模塊和 os 模塊,并規定程序 5 秒的循環間隔時間。 with tf.Graph().as_default() as g: 此函數利用tf.Graph()復現之前定義的計算圖,就是將定義好的神將網絡在計算圖中復現 correct_prediction = tf.equal(tf.argmax(y, 1), tf.argmax(y_, 1))accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32)) 此函數是計算模型在測試集上的準確率;

其中

? ? ? ? ? ? y 表示在一組數據(即 batch_size 個數據)上神經網絡模型的預測結果,y 的形狀為[batch_size,10],每一行表示一張圖片的識別結果。通過tf.argmax()函數取出每張圖片對應向量中最大值元素對應的索引值,組成長度為輸入數據 batch_size 個的一維數組。通過 tf.equal()函數判斷預測結果張量和實際標簽張量的每個維度是否相等,若相等則返回 True,不 相等則返回 False。

? ? ? ? ? ?通過 tf.cast() 函數將得到的布 爾 型 數 值 轉 化 為 實 數 型 ,

? ? ? ? ? 再通過tf.reduce_mean()函數求平均值,最終得到神經網絡模型在本組數據上的準確率

?

以上內容主要講解mnist 數據集的識別源碼中我認為不好理解或者還沒理解的內容,主要目的是為了熟悉該代碼的框架和相關內容。

以實例來增進知識的了解我認為更好吸收

轉載于:https://www.cnblogs.com/fcfc940503/p/10985561.html

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的mnist 数据集的识别源码解析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。