9.SSD目標(biāo)檢測之三:訓(xùn)練失敗記錄(我為什么有臉寫這個(gè)……)

這個(gè)大概折騰了三四天,反正我能想到改的地方都改了沽瘦,筆記本上試過了革骨,宿舍的電腦上也試過了,反正就是不行析恋,我也沒什么辦法了良哲,后面就轉(zhuǎn)向YoloV3了。盡管失敗了绿满,還是記錄一下臂外。
我具體怎么做的就寫在下面:

1 下載源碼框架窟扑。

地址:https://github.com/balancap/SSD-Tensorflow 下載下來解壓喇颁。

2 創(chuàng)建tfrecord_,train_model,VOC2007三個(gè)文件夾。

主目錄下創(chuàng)建嚎货,當(dāng)然名稱不一定是這樣橘霎,主要是為了減少源碼修改。分別是存儲(chǔ)tfrecord格式的訓(xùn)練數(shù)據(jù)殖属,存儲(chǔ)訓(xùn)練的模型以及存儲(chǔ)原始VOC格式的訓(xùn)練數(shù)據(jù)用的姐叁,這個(gè)時(shí)候就可以把上一篇做好的VOC格式的訓(xùn)練數(shù)據(jù)復(fù)制過來了。

3 生成.tfrecords訓(xùn)練文件。

這里面有幾個(gè)需要修改的文件:

  • datasets/pascalvoc_common.py
    改掉原始的標(biāo)簽外潜,把自己的標(biāo)簽填入原环。比如我改完就是這樣。0號(hào)標(biāo)簽不要?jiǎng)哟潜尘啊?br>
  • datasets/pascalvoc_to_tfrecords.py

    line 67: 這里的作用主要是幾個(gè)xml文件生成一個(gè)tfrecords,這樣做的原因作者的readme文件里也說的很清楚:(雖然我并不是特別理解)嘱吗。

另外,修改滔驾,83行的讀取方式和圖片類型:

  • 運(yùn)行tf_convert_data.py文件谒麦,點(diǎn)擊run,Edit_configuration,在parameters中填入預(yù)編譯命令:
--dataset_name=pascalvoc
--dataset_dir=./VOC2007/        #VOC文件夾
--output_name=voc_2007_train     #輸出名稱的前綴
--output_dir=./tfrecords_       #目標(biāo)文件夾

./tfrecords_文件夾中生成了tcrecords文件的話就表明生成成功了。

3. 訓(xùn)練代碼調(diào)整哆致。

  • datasets/pascalvoc_2007.py
    修改數(shù)據(jù)的shape:

幾個(gè)參數(shù)解釋一個(gè):TRAIN_STATISTICS中的格式是:類別:(訓(xùn)練集個(gè)數(shù)绕德,當(dāng)前類別標(biāo)簽數(shù))。
比如對(duì)于person類來說摊阀,包含其的共有100張照片耻蛇,這100張照片中一共有150個(gè)人的標(biāo)簽。就是這么個(gè)意思胞此。
TEST_STATISTICS中就不用說了城丧,照著填就可以了。
SPLIT_TO_SIZE中train就是訓(xùn)練基的個(gè)數(shù)豌鹤,Test是測試集的個(gè)數(shù)亡哄,我是全部用作訓(xùn)練了(因?yàn)閿?shù)據(jù)量很少,所以測試集就隨便寫了一個(gè)數(shù)布疙,這個(gè)在訓(xùn)練的時(shí)候是不影響的)蚊惯。

  • nets/ssd_vgg_300.py
    line 96,97:修改為類別+1.
  • eval_ssd_network.py
    line 66:修改類別數(shù):
  • train_ssd_network.py
    有幾個(gè)要改的地方:
    line27: 數(shù)據(jù)格式改成 NHWC
    line135: 類別個(gè)數(shù): 類別數(shù)+1
    line154: 訓(xùn)練步數(shù):這個(gè)自己改了,先給的小的訓(xùn)練看下loss灵临。

4.下載預(yù)訓(xùn)練模型截型。

我們基于VGG16的預(yù)訓(xùn)練模型來訓(xùn)練,提供個(gè)網(wǎng)盤吧:
鏈接:https://pan.baidu.com/s/1nlHYtH9qUO0gBQPzmNZL-w
提取碼:jcig
下載之后解壓到checkpoint文件夾中儒溉。

5.訓(xùn)練宦焦。

train_ssd_network.py來配置預(yù)編譯命令,點(diǎn)擊run,Edit_configuration,在parameters中填入預(yù)編譯命令:
這里比較多顿涣,主要關(guān)注下最后面的幾個(gè)波闹,我寫在注釋里。

--train_dir=./train_model/
--dataset_dir=./tfrecords_/
--dataset_name=pascalvoc_2007
--dataset_split_name=train
--model_name=ssd_300_vgg
--checkpoint_path=./checkpoints/vgg_16.ckpt
--checkpoint_model_scope=vgg_16
--checkpoint_exclude_scopes=ssd_300_vgg/conv6,ssd_300_vgg/conv7,ssd_300_vgg/block8,ssd_300_vgg/block9,ssd_300_vgg/block10,ssd_300_vgg/block11,ssd_300_vgg/block4_box,ssd_300_vgg/block7_box,ssd_300_vgg/block8_box,ssd_300_vgg/block9_box,ssd_300_vgg/block10_box,ssd_300_vgg/block11_box
--trainable_scopes=ssd_300_vgg/conv6,ssd_300_vgg/conv7,ssd_300_vgg/block8,ssd_300_vgg/block9,ssd_300_vgg/block10,ssd_300_vgg/block11,ssd_300_vgg/block4_box,ssd_300_vgg/block7_box,ssd_300_vgg/block8_box,ssd_300_vgg/block9_box,ssd_300_vgg/block10_box,ssd_300_vgg/block11_box
--save_summaries_secs=60
--save_interval_secs=600       #保存模型的時(shí)間
--weight_decay=0.0005          #初始化權(quán)重
--optimizer=adam                   #優(yōu)化器
--learning_rate=0.001            #學(xué)習(xí)率涛碑,這個(gè)一開始可以給大一點(diǎn)看一下loss
--learning_rate_decay_factor=0.94      #學(xué)習(xí)率退火系數(shù)精堕。
--batch_size=24           #batch_size
--gpu_memory_fraction=0.9         #GPU使用率

如果出現(xiàn)GPU內(nèi)存分配的問題的話就可以把batch_size改小一點(diǎn)或者GPU使用率這個(gè)系數(shù)改小一些。
這樣的話就可以開始訓(xùn)練了蒲障。

6.總結(jié)

我最后遇到的問題就是訓(xùn)練的時(shí)候loss居高不下歹篓,最終也都是在20-100之間跳躍瘫证,這個(gè)loss太大了一些,所以也沒有用保存的模型來看一下測試結(jié)果庄撮。
我猜想了幾種可能背捌。

  • 訓(xùn)練數(shù)據(jù)量太少?
    按照我大量參考的博客來講洞斯,150張訓(xùn)練樣本并不算少载萌,而且為了消除這個(gè)疑慮,我用VOC的數(shù)據(jù)也訓(xùn)練了一段時(shí)間(大概四個(gè)小時(shí))巡扇,loss也是降不下來扭仁。所以基本排除了訓(xùn)練數(shù)據(jù)的問題。
  • 設(shè)置有問題厅翔?
    反正照著前面的設(shè)置都認(rèn)真寫了乖坠。為了避免因?yàn)槠脚_(tái)帶來的問題在不同的電腦上也試了,各個(gè)參數(shù)的意義自己問別人和看代碼也基本了解了刀闷,應(yīng)該沒有問題了熊泵。
  • 訓(xùn)練的時(shí)間太少?(還沒有到極值)學(xué)習(xí)率太大甸昏?(跳過去極值)
    前者我有一天打球之前開了訓(xùn)練顽分,練了20000多個(gè)step,后者我把學(xué)習(xí)率改到萬分之一訓(xùn)練了四個(gè)多小時(shí)施蜜,什么結(jié)果都沒有卒蘸。

后面我確實(shí)沒招了,整個(gè)代碼框架還是挺復(fù)雜的翻默,也沒有時(shí)間去細(xì)細(xì)看缸沃,所以我就放棄了,轉(zhuǎn)向Yolo了修械,值得欣喜的事趾牧,Yolo很快就有了不錯(cuò)的結(jié)果,除了我傻逼了把系統(tǒng)搞崩了之外肯污。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末翘单,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子蹦渣,更是在濱河造成了極大的恐慌哄芜,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,183評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件剂桥,死亡現(xiàn)場離奇詭異忠烛,居然都是意外死亡属提,警方通過查閱死者的電腦和手機(jī)权逗,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門美尸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人斟薇,你說我怎么就攤上這事师坎。” “怎么了堪滨?”我有些...
    開封第一講書人閱讀 168,766評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵胯陋,是天一觀的道長。 經(jīng)常有香客問我袱箱,道長遏乔,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,854評(píng)論 1 299
  • 正文 為了忘掉前任发笔,我火速辦了婚禮盟萨,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘了讨。我一直安慰自己捻激,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,871評(píng)論 6 398
  • 文/花漫 我一把揭開白布前计。 她就那樣靜靜地躺著胞谭,像睡著了一般。 火紅的嫁衣襯著肌膚如雪男杈。 梳的紋絲不亂的頭發(fā)上丈屹,一...
    開封第一講書人閱讀 52,457評(píng)論 1 311
  • 那天,我揣著相機(jī)與錄音伶棒,去河邊找鬼泉瞻。 笑死,一個(gè)胖子當(dāng)著我的面吹牛苞冯,可吹牛的內(nèi)容都是我干的袖牙。 我是一名探鬼主播,決...
    沈念sama閱讀 40,999評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼舅锄,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼鞭达!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起皇忿,我...
    開封第一講書人閱讀 39,914評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤畴蹭,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后鳍烁,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體叨襟,經(jīng)...
    沈念sama閱讀 46,465評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,543評(píng)論 3 342
  • 正文 我和宋清朗相戀三年幔荒,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了糊闽。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片梳玫。...
    茶點(diǎn)故事閱讀 40,675評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖右犹,靈堂內(nèi)的尸體忽然破棺而出提澎,到底是詐尸還是另有隱情,我是刑警寧澤念链,帶...
    沈念sama閱讀 36,354評(píng)論 5 351
  • 正文 年R本政府宣布盼忌,位于F島的核電站,受9級(jí)特大地震影響掂墓,放射性物質(zhì)發(fā)生泄漏谦纱。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,029評(píng)論 3 335
  • 文/蒙蒙 一君编、第九天 我趴在偏房一處隱蔽的房頂上張望服协。 院中可真熱鬧,春花似錦啦粹、人聲如沸偿荷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽跳纳。三九已至,卻和暖如春贪嫂,著一層夾襖步出監(jiān)牢的瞬間寺庄,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評(píng)論 1 274
  • 我被黑心中介騙來泰國打工力崇, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留斗塘,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,091評(píng)論 3 378
  • 正文 我出身青樓亮靴,卻偏偏與公主長得像馍盟,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子茧吊,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,685評(píng)論 2 360

推薦閱讀更多精彩內(nèi)容