caffe微調網路時的注意事項(持續更新中)

2021-08-29 07:31:42 字數 1045 閱讀 3399

2023年05月04日 11:04:20

sunshine_in_moon

更多

個人分類:

錯題本

caffe

最近在微調遇到了一些困難,在此做乙個記錄,與大家分享!

第乙個,微調資料的準備

微調的目的是使別人訓練好的模型更適合自己的資料,因此,微調的資料一般都是適合自己應用的資料。但是,大牛建議,在微調是不要全部使用自己的資料,應該將自己的資料和原始訓練資料混合在一起,並逐步增加自己的資料的比例,這樣效果可能會好一些。

第二個,網路的修改

微調是在已經訓練好的模型的基礎上,用自己的資料繼續訓練網路。那為什麼叫微調為網路而不是繼續訓練網路。個人覺得微調指的是可以區域性調整引數,也就是我們可以在微調是可以只調節某一層的權重,一般只調節全連線層的權重。那麼要怎樣實現這個目的呢?這就需要我們修改網路配置檔案中的lr_mult和decay_mult兩個引數,如下圖:

如果你不想改變某一層的引數,只要將這一層對應的lr_mult和decay_mult都設定成0即可。

注意:這種方式的效果可能並不好,有的大牛建議,增大最後乙個全連線層的lr_mult,如分別設定層10和20

第三個,最後乙個全連線層的修改

修改的地方有兩個:

一,我們的微調資料的種類和原始訓練資料的種類可能不同,因此我們需要將層中的引數num_ouput:你的資料型別。

二,當你修改了num_output引數後,由於與原始模型不同了,所以在載入模型時會報錯,因此這一層的權重我們就不能從模型中載入,要重新訓練。錯誤提示如下:

模型載入時是按照層的名字載入的,因此我們需要修改引數的名字,這樣這一層的權重就可以從新初始值開始訓練。

未完待續。。。。。

Caffe配置注意事項

這裡主要關注以下問題 解決方案 採用國內映象 參考文章 國內映象 豆瓣 阿里 華中理工大學 山東理工大學 中國科學技術大學 清華使用辦法 1 臨時使用,新增 i 或 index 引數 pip install i flask 2 配製成預設的 在你的 c users 你的使用者名稱 目錄下建立 pip...

python 繼承時注意事項

1.init 注意事項 如果父類有 init 函式,子類沒有,則子類自動呼叫父類 init 函式 如果父類有 init 函式,子類也有,則子類必須主動呼叫父類 init 函式,否則會報錯 class a def init self self.name a defprintname self prin...

寫郵件時的注意事項

很早之前總結的東西了,從筆記上往這上面傳記一下 回郵件要迅速 宛先 署名 正確 起乙個合適的件名 盡量控制在20個字以內,不要有 話題轉變時,郵件的題目要更新 郵件的標題是否有郵件內容相對應 2.簡介 先寫結論 5w2h what,when,where why,who how how much 善於...