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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

TensorFlow实现多层感知机MINIST分类

發布時間:2023/11/28 生活经验 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 TensorFlow实现多层感知机MINIST分类 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

TensorFlow實現多層感知機MINIST分類
TensorFlow 支持自動求導,可以使用 TensorFlow 優化器來計算和使用梯度。使用梯度自動更新用變量定義的張量。本文將使用 TensorFlow 優化器來訓練網絡。

前面定義了層、權重、損失、梯度以及通過梯度更新權重。用公式實現可以幫助我們更好地理解,但隨著網絡層數的增加,這可能非常麻煩。

使用 TensorFlow 的一些強大功能,如 Contrib(層)來定義神經網絡層及使用 TensorFlow 自帶的優化器來計算和使用梯度。

通過前面的學習,已經知道如何使用 TensorFlow 的優化器。Contrib 可以用來添加各種層到神經網絡模型,如添加構建塊。這里使用的一個方法是 tf.contrib.layers.fully_connected,在 TensorFlow 文檔中定義如下:

這樣就添加了一個全連接層。

提示:上面那段代碼創建了一個稱為權重的變量,表示全連接的權重矩陣,該矩陣與輸入相乘產生隱藏層單元的張量。如果提供了 normalizer_fn(比如batch_norm),那么就會歸一化。否則,如果 normalizer_fn 是 None,并且設置了 biases_initializer,則會創建一個偏置變量并將其添加到隱藏層單元中。最后,如果 activation_fn 不是 None,它也會被應用到隱藏層單元。
具體做法
第一步是改變損失函數,盡管對于分類任務,最好使用交叉熵損失函數。這里繼續使用均方誤差(MSE):

接下來,使用 GradientDescentOptimizer:

對于同一組超參數,只有這兩處改變,在測試數據集上的準確率只有 61.3%。增加 max_epoch,可以提高準確性,但不能有效地發揮 TensorFlow 的能力。

這是一個分類問題,所以最好使用交叉熵損失,隱藏層使用 ReLU 激活函數,輸出層使用 softmax 函數。做些必要的修改,完整代碼如下所示:

解讀分析
修改后的 MNIST MLP 分類器在測試數據集上只用了一個隱藏層,并且在 10 個 epoch 內,只需要幾行代碼,就可以得到 96% 的精度:

由此可見 TensorFlow 的強大之處。

總結

以上是生活随笔為你收集整理的TensorFlow实现多层感知机MINIST分类的全部內容,希望文章能夠幫你解決所遇到的問題。

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