学习笔记:Keras 错误提示
目錄:
- 目錄:
- Keras使用陷阱
- TF卷積核與TH卷積核
- 向BN層中載入權(quán)重
- Keras的可訓(xùn)練參數(shù)在前,不可訓(xùn)練參數(shù)在后
- Merge層的層對(duì)象與函數(shù)方法
本系列參考官方文檔官方文檔
這就是keras可以參考前篇:這就是keras
學(xué)習(xí)筆記 Keras:一些基本概念 一些基本概念
Keras:常見問題學(xué)習(xí)筆記:Keras常見問題
Windows 下Keras安裝和配置指南:Windows 下Keras安裝和配置指南
Keras使用陷阱
這里歸納了Keras使用過程中的一些常見陷阱和解決方法,當(dāng)然未完待續(xù),有新發(fā)現(xiàn)會(huì)立馬補(bǔ)上。
TF卷積核與TH卷積核
Keras提供了三套后端,Theano和Tensorflow和CNTK,這是一件幸福的事,就像手中拿著饅頭,想蘸紅糖蘸紅糖,想蘸白糖蘸白糖
如果你從無(wú)到有搭建自己的一套網(wǎng)絡(luò),則大可放心。但如果你想使用一個(gè)已有網(wǎng)絡(luò),或把一個(gè)用th/tf 訓(xùn)練的網(wǎng)絡(luò)以另一種后端應(yīng)用,在載入的時(shí)候你就應(yīng)該特別小心了。
卷積核與所使用的后端不匹配,不會(huì)報(bào)任何錯(cuò)誤,因?yàn)樗鼈兊膕hape是完全一致的,沒有方法能夠檢測(cè)出這種錯(cuò)誤。
在使用預(yù)訓(xùn)練模型時(shí),一個(gè)建議是首先找一些測(cè)試樣本,看看模型的表現(xiàn)是否與預(yù)計(jì)的一致。
如需對(duì)卷積核進(jìn)行轉(zhuǎn)換,可以使用utils.convert_all_kernels_in_model對(duì)模型的所有卷積核進(jìn)行轉(zhuǎn)換
向BN層中載入權(quán)重
如果你不知道從哪里淘來(lái)一個(gè)預(yù)訓(xùn)練好的BN層,想把它的權(quán)重載入到Keras中,要小心參數(shù)的載入順序。
一個(gè)典型的例子是,將caffe的BN層參數(shù)載入Keras中,caffe的BN由兩部分構(gòu)成,bn層的參數(shù)是mean,std,scale層的參數(shù)是gamma,beta
按照BN的文章順序,似乎載入Keras BN層的參數(shù)應(yīng)該是[mean, std, gamma, beta]
然而不是的,Keras的BN層參數(shù)順序應(yīng)該是[gamma, beta, mean, std],這是因?yàn)間amma和beta是可訓(xùn)練的參數(shù),而mean和std不是
Keras的可訓(xùn)練參數(shù)在前,不可訓(xùn)練參數(shù)在后
錯(cuò)誤的權(quán)重順序不會(huì)引起任何報(bào)錯(cuò),因?yàn)樗鼈兊膕hape完全相同
shuffle和validation_split的順序
模型的fit函數(shù)有兩個(gè)參數(shù),shuffle用于將數(shù)據(jù)打亂,validation_split用于在沒有提供驗(yàn)證集的時(shí)候,按一定比例從訓(xùn)練集中取出一部分作為驗(yàn)證集
這里有個(gè)陷阱是,程序是先執(zhí)行validation_split,再執(zhí)行shuffle的,所以會(huì)出現(xiàn)這種情況:
假如你的訓(xùn)練集是有序的,比方說正樣本在前負(fù)樣本在后,又設(shè)置了validation_split,那么你的驗(yàn)證集中很可能將全部是負(fù)樣本
同樣的,這個(gè)東西不會(huì)有任何錯(cuò)誤報(bào)出來(lái),因?yàn)镵eras不可能知道你的數(shù)據(jù)有沒有經(jīng)過shuffle,保險(xiǎn)起見如果你的數(shù)據(jù)是沒shuffle過的,最好手動(dòng)shuffle一下
Merge層的層對(duì)象與函數(shù)方法
Keras定義了一套用于融合張量的方法,位于keras.layers.Merge,里面有兩套工具,以大寫字母開頭的是Keras Layer類,使用這種工具是需要實(shí)例化一個(gè)Layer對(duì)象,然后再使用。以小寫字母開頭的是張量函數(shù)方法,本質(zhì)上是對(duì)Merge Layer對(duì)象的一個(gè)包裝,但使用更加方便一些。注意辨析。
總結(jié)
以上是生活随笔為你收集整理的学习笔记:Keras 错误提示的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 验证码_如何使用Java生成随
- 下一篇: base href= php,如何正确