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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

学习笔记:Keras 错误提示

發布時間:2025/3/15 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 学习笔记:Keras 错误提示 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄:

  • 目錄:
  • Keras使用陷阱
  • TF卷積核與TH卷積核
  • 向BN層中載入權重
  • Keras的可訓練參數在前,不可訓練參數在后
  • Merge層的層對象與函數方法

本系列參考官方文檔官方文檔
這就是keras可以參考前篇:這就是keras
學習筆記 Keras:一些基本概念 一些基本概念
Keras:常見問題學習筆記:Keras常見問題
Windows 下Keras安裝和配置指南:Windows 下Keras安裝和配置指南

Keras使用陷阱

這里歸納了Keras使用過程中的一些常見陷阱和解決方法,當然未完待續,有新發現會立馬補上。

TF卷積核與TH卷積核

Keras提供了三套后端,Theano和Tensorflow和CNTK,這是一件幸福的事,就像手中拿著饅頭,想蘸紅糖蘸紅糖,想蘸白糖蘸白糖
如果你從無到有搭建自己的一套網絡,則大可放心。但如果你想使用一個已有網絡,或把一個用th/tf 訓練的網絡以另一種后端應用,在載入的時候你就應該特別小心了。
卷積核與所使用的后端不匹配,不會報任何錯誤,因為它們的shape是完全一致的,沒有方法能夠檢測出這種錯誤。
在使用預訓練模型時,一個建議是首先找一些測試樣本,看看模型的表現是否與預計的一致。
如需對卷積核進行轉換,可以使用utils.convert_all_kernels_in_model對模型的所有卷積核進行轉換

向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完全相同
shuffle和validation_split的順序
模型的fit函數有兩個參數,shuffle用于將數據打亂,validation_split用于在沒有提供驗證集的時候,按一定比例從訓練集中取出一部分作為驗證集
這里有個陷阱是,程序是先執行validation_split,再執行shuffle的,所以會出現這種情況:
假如你的訓練集是有序的,比方說正樣本在前負樣本在后,又設置了validation_split,那么你的驗證集中很可能將全部是負樣本
同樣的,這個東西不會有任何錯誤報出來,因為Keras不可能知道你的數據有沒有經過shuffle,保險起見如果你的數據是沒shuffle過的,最好手動shuffle一下

Merge層的層對象與函數方法

Keras定義了一套用于融合張量的方法,位于keras.layers.Merge,里面有兩套工具,以大寫字母開頭的是Keras Layer類,使用這種工具是需要實例化一個Layer對象,然后再使用。以小寫字母開頭的是張量函數方法,本質上是對Merge Layer對象的一個包裝,但使用更加方便一些。注意辨析。

總結

以上是生活随笔為你收集整理的学习笔记:Keras 错误提示的全部內容,希望文章能夠幫你解決所遇到的問題。

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