解讀Tensorflow2.0訓(xùn)練損失值降低,但測(cè)試正確率基本不變的情況
Tensorflow2.0訓(xùn)練損失值降低,但測(cè)試正確率基本不變的情況
問(wèn)題描述
對(duì)于一個(gè)架構(gòu),在識(shí)別mnist手寫(xiě)數(shù)字集精度較高的情況下,更換其他數(shù)據(jù)集,卻無(wú)法得到較高的識(shí)別結(jié)果。假設(shè)有n個(gè)類(lèi)別,修改輸入端、輸出端及幾個(gè)卷積核的大小,識(shí)別時(shí)雖然loss在減小,但正確率acc穩(wěn)定在1/n左右不變化。
解決方法
修改參數(shù)
主要考慮的參數(shù)有batch、學(xué)習(xí)率和keep_prob:
- batch ,降低該值,使得網(wǎng)絡(luò)充分學(xué)習(xí)數(shù)據(jù);
- 學(xué)習(xí)率,降低該值,使得模型梯度下降;
- keep_prob ,降低該值,使得模型具有學(xué)習(xí)能力。
檢查模型
檢查模型是否有問(wèn)題,修改網(wǎng)絡(luò)的架構(gòu)。
loss計(jì)算方法
選擇loss計(jì)算的公式方法是否有問(wèn)題。
數(shù)據(jù)標(biāo)簽
檢查數(shù)據(jù)的標(biāo)簽是否轉(zhuǎn)換正確。
權(quán)重初始值
修改權(quán)重的初始化方法。
Tensorflow2.0準(zhǔn)確率和損失值的可視化
進(jìn)行準(zhǔn)確率和損失值的可視化,就是將acc和loss使用matplot畫(huà)出來(lái)。
我們?cè)谑褂胢odel.fit()函數(shù)進(jìn)行訓(xùn)練時(shí),同步記錄了訓(xùn)練集和測(cè)試集的損失和準(zhǔn)確率。
可以使用history進(jìn)行調(diào)用,如下:
# 使用history將訓(xùn)練集和測(cè)試集的loss和acc調(diào)出來(lái)
acc = history.history['sparse_categorical_accuracy'] # 訓(xùn)練集準(zhǔn)確率
val_acc = history.history['val_sparse_categorical_accuracy'] # 測(cè)試集準(zhǔn)確率
loss = history.history['loss'] # 訓(xùn)練集損失
val_loss = history.history['val_loss'] # 測(cè)試集損失
# 打印acc和loss,采用一個(gè)圖進(jìn)行顯示。
# 將acc打印出來(lái)。
plt.subplot(1, 2, 1) # 將圖像分為一行兩列,將其顯示在第一列
plt.plot(acc, label='Training Accuracy')
plt.plot(val_acc, label='Validation Accuracy')
plt.title('Training and Validation Accuracy')
plt.legend()
plt.subplot(1, 2, 2) # 將其顯示在第二列
plt.plot(loss, label='Training Loss')
plt.plot(val_loss, label='Validation Loss')
plt.title('Training and Validation Loss')
plt.legend()
plt.show()將本篇代碼放在上篇文章代碼后,運(yùn)行即可。
輸出結(jié)果:

總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python3利用smtplib通過(guò)qq郵箱發(fā)送郵件方法示例
python實(shí)現(xiàn)郵件發(fā)送較為簡(jiǎn)單,主要用到smtplib這個(gè)模塊,所以下面這篇文章主要給大家介紹了關(guān)于python3利用smtplib通過(guò)qq郵箱發(fā)送郵件的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來(lái)一起看看吧。2017-12-12
python根據(jù)開(kāi)頭和結(jié)尾字符串獲取中間字符串的方法
這篇文章主要介紹了python根據(jù)開(kāi)頭和結(jié)尾字符串獲取中間字符串的方法,涉及Python操作字符串截取的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03
Python3 多線程(連接池)操作MySQL插入數(shù)據(jù)
本文將結(jié)合實(shí)例代碼,介紹Python3 多線程(連接池)操作MySQL插入數(shù)據(jù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-06-06
Pandas實(shí)現(xiàn)復(fù)制dataframe中的每一行
這篇文章主要介紹了Pandas實(shí)現(xiàn)復(fù)制dataframe中的每一行方式,2024-02-02
一文詳解如何實(shí)現(xiàn)PyTorch模型編譯
這篇文章主要為大家介紹了如何實(shí)現(xiàn)PyTorch?模型編譯詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04
Python實(shí)現(xiàn)批量備份交換機(jī)配置+自動(dòng)巡檢
這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)批量備份交換機(jī)配置+自動(dòng)巡檢的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-11-11
python時(shí)間日期操作方法實(shí)例小結(jié)
這篇文章主要介紹了python時(shí)間日期操作方法,結(jié)合實(shí)例形式總結(jié)分析了Python針對(duì)日期時(shí)間的轉(zhuǎn)換、計(jì)算相關(guān)操作技巧,需要的朋友可以參考下2020-02-02

