国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

腳本之家,腳本語言編程技術(shù)及教程分享平臺!
分類導(dǎo)航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務(wù)器之家 - 腳本之家 - Python - 淺談keras 模型用于預(yù)測時的注意事項

淺談keras 模型用于預(yù)測時的注意事項

2020-06-27 11:59機器AI Python

這篇文章主要介紹了淺談keras 模型用于預(yù)測時的注意事項,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

為什么訓練誤差比測試誤差高很多?

一個Keras的模型有兩個模式:訓練模式測試模式一些正則機制,如Dropout,L1/L2正則項在測試模式下將不被啟用。

另外,訓練誤差是訓練數(shù)據(jù)每個batch的誤差的平均。在訓練過程中,每個epoch起始時的batch的誤差要大一些,而后面的batch的誤差要小一些。另一方面,每個epoch結(jié)束時計算的測試誤差是由模型在epoch結(jié)束時的狀態(tài)決定的,這時候的網(wǎng)絡(luò)將產(chǎn)生較小的誤差。

【Tips】可以通過定義回調(diào)函數(shù)將每個epoch的訓練誤差和測試誤差并作圖,如果訓練誤差曲線和測試誤差曲線之間有很大的空隙,說明你的模型可能有過擬合的問題。當然,這個問題與Keras無關(guān)。

keras中文文檔中指出了這一誤區(qū),筆者認為產(chǎn)生這一問題的原因在于網(wǎng)絡(luò)實現(xiàn)的機制。即dropout層有前向?qū)崿F(xiàn)和反向?qū)崿F(xiàn)兩種方式,這就決定了概率p是在訓練時候設(shè)置還是測試的時候進行設(shè)置

利用預(yù)訓練的權(quán)值進行Fine tune時的注意事項:

不能把自己添加的層進行將隨機初始化后直接連接到前面預(yù)訓練后的網(wǎng)絡(luò)層

in order to perform fine-tuning, all layers should start with properly trained weights: for instance you should not slap a randomly initialized fully-connected network on top of a pre-trained convolutional base. This is because the large gradient updates triggered by the randomly initialized weights would wreck the learned weights in the convolutional base. In our case this is why we first train the top-level classifier, and only then start fine-tuning convolutional weights alongside it.

we choose to only fine-tune the last convolutional block rather than the entire network in order to prevent overfitting, since the entire network would have a very large entropic capacity and thus a strong tendency to overfit. The features learned by low-level convolutional blocks are more general, less abstract than those found higher-up, so it is sensible to keep the first few blocks fixed (more general features) and only fine-tune the last one (more specialized features).

fine-tuning should be done with a very slow learning rate, and typically with the SGD optimizer rather than an adaptative learning rate optimizer such as RMSProp. This is to make sure that the magnitude of the updates stays very small, so as not to wreck the previously learned features.

補充知識:keras框架中用keras.models.Model做的時候預(yù)測數(shù)據(jù)不是標簽的問題

我們發(fā)現(xiàn),在用Sequential去搭建網(wǎng)絡(luò)的時候,其中有predict和predict_classes兩個預(yù)測函數(shù),前一個是返回的精度,后面的是返回的具體標簽。但是,在使用keras.models.Model去做的時候,就會發(fā)現(xiàn),它只有一個predict函數(shù),沒有返回標簽的predict_classes函數(shù),所以,針對這個問題,我們將其改寫。改寫如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
def my_predict_classes(predict_data):
  if predict_data.shape[-1] > 1:
    return predict_data.argmax(axis=-1)
  else:
    return (predict_data > 0.5).astype('int32')
 
# 這里省略網(wǎng)絡(luò)搭建部分。。。。
 
model = Model(data_input, label_output)
model.compile(loss='categorical_crossentropy',
       optimizer=keras.optimizers.Nadam(lr=0.002),
       metrics=['accuracy'])
model.summary()
 
y_predict = model.predict(X_test)
y_pre = my_predict_classes(y_predict)

這樣,y_pre就是具體的標簽了。

以上這篇淺談keras 模型用于預(yù)測時的注意事項就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持服務(wù)器之家。

原文鏈接:https://blog.csdn.net/xiaojiajia007/article/details/73771311

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美久久综合 | 久久久久成人精品免费播放动漫 | 欧美日本韩国一区二区 | 成年人在线观看 | 日韩激情一区二区 | 一区二区三区在线免费播放 | 亚洲精品乱码久久久久久蜜桃不爽 | 久久一区 | 四季久久免费一区二区三区四区 | 黄色一级毛片 | 久久社区| 日本在线一区二区 | 欧美成人精品激情在线观看 | 欧美一级片在线播放 | 日韩精品一区在线 | 精品欧美日韩 | 亚洲精品一区二区 | 亚洲免费在线观看 | 国产精品欧美一区二区三区不卡 | 日韩精品免费视频 | 亚洲视频www| 国产一区二区精品在线观看 | 2019国产精品 | 久久精品一区二区三区中文字幕 | 国产91久久久| 日韩欧美一区二区三区免费观看 | 黑森林av凹凸导航 | 欧美一级网站 | 国产精品99久久免费观看 | 久久se精品一区精品二区 | 欧美日韩美女 | 国产成人自拍视频在线观看 | 久久综合伊人 | 黑人巨大精品欧美一区免费视频 | 韩国精品免费视频 | 九九精品视频在线观看 | 国产高清精品在线 | 一级片免费在线 | 亚洲自拍偷拍在线 | 日韩欧美大片在线观看 | 日本欧美国产 |