使用darknet框架的imagenet數(shù)據(jù)分類(lèi)預(yù)訓(xùn)練操作
最近一段時(shí)間一直在研究yolo物體檢測(cè),基于網(wǎng)絡(luò)上很少有yolo的分類(lèi)預(yù)訓(xùn)練和yolo9000的聯(lián)合數(shù)據(jù)的訓(xùn)練方法,經(jīng)過(guò)本人的真實(shí)實(shí)驗(yàn),對(duì)這兩個(gè)部分做一個(gè)整理(本篇介紹yolo的分類(lèi)預(yù)訓(xùn)練)
1、數(shù)據(jù)準(zhǔn)備
1000類(lèi)的Imagenet圖片數(shù)據(jù)
因?yàn)镮magenet不同的類(lèi)別數(shù)據(jù)都是單獨(dú)放在一個(gè)文件夾中,并且有特定的命名,如‘n00020287',所以在做分類(lèi)時(shí)我們不需要去制作特定的標(biāo)簽,只要訓(xùn)練的圖片的path中包含自身的類(lèi)別標(biāo)簽,而不含有其他類(lèi)的標(biāo)簽即可。
制作用于訓(xùn)練的數(shù)據(jù)列表*classf_list.txt

2、分類(lèi)標(biāo)簽制作
制作所有類(lèi)別的標(biāo)簽列表new_label.txt和標(biāo)簽對(duì)應(yīng)的類(lèi)別名稱(chēng)的列表new_name.txt
new_label.txt

new_name.txt(訓(xùn)練時(shí)不需要,但是測(cè)試時(shí)可以顯示出具體的類(lèi)別)

3、修改cfg/.data配置文件(*classf.data)
classes=1000 train =/home/research/disk2/wangshun/yolo1700/darknet/coco/filelist/classf_list.txt labels=data/new_label.txt names=data/new_name.txt backup=backup top=5
修改網(wǎng)絡(luò)配置文件(classf.cfg)
[net] #Training batch=64 subdivisions=1 width=416 height=416 channels=3 momentum=0.9 decay=0.0005 angle=0 saturation = 1.5 exposure = 1.5 hue=.1 max_crop = 512 learning_rate=0.001 burn_in=1000 max_batches = 1000000000 policy=steps steps=350000,500000,750000,1200000 scales=.1,.1,.1,.1 [convolutional] batch_normalize=1 filters=16 size=3 stride=1 pad=1 activation=leaky [maxpool] size=2 stride=2 [convolutional] batch_normalize=1 filters=32 size=3 stride=1 pad=1 activation=leaky [maxpool] size=2 stride=2 [convolutional] batch_normalize=1 filters=64 size=3 stride=1 pad=1 activation=leaky [convolutional] batch_normalize=1 filters=32 size=1 stride=1 pad=1 activation=leaky [convolutional] batch_normalize=1 filters=64 size=3 stride=1 pad=1 activation=leaky [maxpool] size=2 stride=2 [convolutional] batch_normalize=1 filters=128 size=3 stride=1 pad=1 activation=leaky [convolutional] batch_normalize=1 filters=64 size=1 stride=1 pad=1 activation=leaky [convolutional] batch_normalize=1 filters=128 size=3 stride=1 pad=1 activation=leaky [maxpool] size=2 stride=2 [convolutional] batch_normalize=1 filters=64 size=3 stride=1 pad=1 activation=leaky [convolutional] batch_normalize=1 filters=128 size=1 stride=1 pad=1 activation=leaky [convolutional] batch_normalize=1 filters=256 size=3 stride=1 pad=1 activation=leaky [convolutional] batch_normalize=1 filters=128 size=1 stride=1 pad=1 activation=leaky [convolutional] batch_normalize=1 filters=256 size=3 stride=1 pad=1 activation=leaky [maxpool] size=2 stride=2 [convolutional] batch_normalize=1 filters=256 size=3 stride=1 pad=1 activation=leaky [convolutional] batch_normalize=1 filters=128 size=1 stride=1 pad=1 activation=leaky [convolutional] batch_normalize=1 filters=256 size=3 stride=1 pad=1 activation=leaky [convolutional] batch_normalize=1 filters=128 size=1 stride=1 pad=1 activation=leaky [convolutional] batch_normalize=1 filters=256 size=3 stride=1 pad=1 activation=leaky ####### [convolutional] batch_normalize=1 size=1 stride=1 pad=1 filters=128 activation=leaky [convolutional] batch_normalize=1 size=3 stride=1 pad=1 filters=256 activation=leaky [convolutional] batch_normalize=1 size=3 stride=1 pad=1 filters=256 activation=leaky [convolutional] filters=1000 size=1 stride=1 pad=1 activation=leaky [avgpool] [softmax] groups = 1 [cost] type=sse
當(dāng)然中間的網(wǎng)絡(luò)層是我自己修改的網(wǎng)絡(luò)。
5. 訓(xùn)練
./darknet classifier train cfg/classf.data cfg/classf.cfg -gpus 0,3(選擇自己機(jī)器的gpu)

6 . 測(cè)試
./darknet classifier predict cfg/classf.data cfg/classf.cfg backup/classf.weights data/eagle.jpg

當(dāng)然這只是剛剛訓(xùn)練了2000次測(cè)試的結(jié)果,只是測(cè)試,還需要繼續(xù)訓(xùn)練。
以上這篇使用darknet框架的imagenet數(shù)據(jù)分類(lèi)預(yù)訓(xùn)練操作就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Windows安裝pycocotools的問(wèn)題報(bào)錯(cuò)解決
最近使用pip install安裝pycocotools出現(xiàn)錯(cuò)誤,本文主要介紹了Windows安裝pycocotools的問(wèn)題報(bào)錯(cuò)解決,具有一定的參考價(jià)值,感興趣的可以了解一下2024-06-06
Python基礎(chǔ)學(xué)習(xí)之反射機(jī)制詳解
在Python中,反射是指通過(guò)一組內(nèi)置的函數(shù)和語(yǔ)句,在運(yùn)行時(shí)動(dòng)態(tài)地訪問(wèn)、檢查和修改對(duì)象的屬性、方法和類(lèi)信息的機(jī)制。本文將通過(guò)簡(jiǎn)單的示例和大家講講Python中的反射機(jī)制,希望對(duì)大家有所幫助2023-03-03
使用Python實(shí)現(xiàn)發(fā)送郵件的常用方法小結(jié)
在日常工作中,我們可能經(jīng)常會(huì)用到發(fā)送郵件,但如果每次都人工來(lái)發(fā)送,那豈不是很麻煩,今天我們就來(lái)講解下如何通過(guò)python語(yǔ)言來(lái)優(yōu)雅地發(fā)送郵件2024-04-04
Python解析JSON數(shù)據(jù)的基本方法實(shí)例代碼
JSON (JavaScript Object Notation) 是一種輕量級(jí)的數(shù)據(jù)交換格式,下面這篇文章主要給大家介紹了關(guān)于Python解析JSON數(shù)據(jù)的基本方法,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-01-01
python實(shí)現(xiàn)將讀入的多維list轉(zhuǎn)為一維list的方法
今天小編就為大家分享一篇python實(shí)現(xiàn)將讀入的多維list轉(zhuǎn)為一維list的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-06-06
淺析pandas 數(shù)據(jù)結(jié)構(gòu)中的DataFrame
DataFrame 類(lèi)型類(lèi)似于數(shù)據(jù)庫(kù)表結(jié)構(gòu)的數(shù)據(jù)結(jié)構(gòu),這篇文章主要介紹了pandas 數(shù)據(jù)結(jié)構(gòu)之DataFrame,需要的朋友可以參考下2019-10-10

