Keras框架使用注意事項

2021-10-05 18:37:27 字數 1537 閱讀 7562

如果您的顯示卡是非nvidia公司的產品或是nvidia gtx系列中型號的第乙個數字低於6或nvidia的gt系列,都不建議您採用此類顯示卡進行加速計算,例如nvidia gt 910、nvidia gtx 460 等等。

如果您的顯示卡為筆記本上的gtx移動顯示卡(型號後面帶有標識m),那麼請您慎重使用顯示卡加速,因為移動版gpu容易發生過熱燒毀現象。

如果您的顯示卡,顯示的是諸如 hd5000,ati 5650 等型別的顯示卡,那麼您只能使用cpu加速

如果您的顯示卡晶元為pascal架構(nvidia gtx 1080,nvidia gtx 1070等),您只能在之後的配置中選擇cuda 8.0

1 tf卷積核與th卷積核

如果你從無到有搭建自己的一套網路,則大可放心。

但如果你想使用乙個已有網路,或把乙個用th/tf 訓練的網路以另一種後端應用,在載入的時候你就應該特別小心了。

卷積核與所使用的後端不匹配,不會報任何錯誤,因為它們的shape是完全一致的,沒有方法能夠檢測出這種錯誤。

th/tf的shape雖然完全一致, 但是tf四維矩陣(影象資料),shape順序為(pic_num, pic_width, pic_height, pic_channel)

而th四維矩陣shape順序為(pic_num, pic_channel, pic_width, pic_height)

避免陷阱的方法

(1) 在使用預訓練模型時,乙個建議是首先找一些測試樣本,看看模型的表現是否與預計的一致。

(2) 如需對卷積核進行轉換,可以使用utils.convert_all_kernels_in_model對模型的所有卷積核進行轉換

2 向bn層中載入權重

如果你不知道從**淘來乙個預訓練好的bn層,想把它的權重載入到keras中,要小心引數的載入順序。

乙個典型的例子是,將caffe的bn層引數載入keras中,caffe的bn由兩部分構成,bn層的引數是mean,std,scale層的引數是gamma,beta

按照bn的文章順序,似乎載入keras bn層的引數應該是[mean, std, gamma, beta]

然而不是的,keras的bn層引數順序應該是[gamma, beta, mean, std],這是因為gamma和beta是可訓練的引數,而mean和std不是

keras的可訓練引數在前,不可訓練引數在後

錯誤的權重順序不會引起任何報錯,因為它們的shape完全相同

3 shuffle和validation_split的順序

模型的fit函式有兩個引數,shuffle用於將資料打亂,validation_split用於在沒有提供驗證集的時候,按一定比例從訓練集中取出一部分作為驗證集

這裡有個陷阱是,程式是先執行validation_split,再執行shuffle的,所以會出現這種情況:

假如你的訓練集是有序的,比方說正樣本在前負樣本在後,又設定了validation_split,那麼你的驗證集中很可能將全部是負樣本

同樣的,這個東西不會有任何錯誤報出來,因為keras不可能知道你的資料有沒有經過shuffle,保險起見如果你的資料是沒shuffle過的,最好手動shuffle一下

iview框架使用注意事項

this.refs.datapage.currentpage 1 1.timepicker 和 datepicker 兩種日期選擇元件雖然方便,但使用時需要注意 使用 datepicker 繫結on change事件,可以通過 on change function date 獲取到當前選擇的日期,但...

Django框架簡介與使用注意事項

mvc,全名是model view controller,是軟體工程中的一種軟體架構模式,把軟體系統分為三個基本部分 模型 model 檢視 view 和控制器 controller 具有耦合性低 重用性高 生命週期成本低等優點。django框架的設計模式借鑑了mvc框架的思想,也是分成三部分,來降...

LCD使用注意事項

a.lcd使用注意事項 1.確保是在電源關閉的狀態下拔插線纜 2.對液晶屏進行固定安裝時,注意使整個液晶屏保持平整,避免外力導致液晶屏 彎曲 扭曲 3.一定要小心液晶屏的表面偏光片,避免被堅硬物體劃傷 決不能將堅硬物品置於液晶屏之上 4.如果水滴長時間滯留在液晶模組上,可能導致變色或出現汙斑,所以務...