最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

MicroNet實(shí)戰(zhàn)分享!使用MicroNet實(shí)現(xiàn)圖像分類(lèi)(一)

2023-03-22 18:23 作者:深度之眼官方賬號(hào)  | 我要投稿

來(lái)源:投稿 作者:AI浩
編輯:學(xué)姐

MicroNet實(shí)戰(zhàn)?

摘要

本文通過(guò)對(duì)植物幼苗分類(lèi)的實(shí)際例子來(lái)感受一下MicroNet模型的效果。模型來(lái)自官方,我自己寫(xiě)了train和test部分。從得分情況來(lái)看,這個(gè)模型非常的優(yōu)秀,我選擇用的MicroNet-M3模型,大小僅有6M,但是ACC在95%左右,成績(jī)非常驚艷?。。?/p>

這篇文章從實(shí)戰(zhàn)的角度手把手帶領(lǐng)大家完成訓(xùn)練和測(cè)試。通過(guò)這篇文章能讓你學(xué)到:

  1. 如何使用數(shù)據(jù)增強(qiáng),包括transforms的增強(qiáng)、CutOut、MixUp、CutMix等增強(qiáng)手段??

  2. 如何配置MicroNet模型實(shí)現(xiàn)訓(xùn)練??

  3. 如何使用pytorch自帶混合精度??

  4. 如何使用梯度裁剪防止梯度爆炸??

  5. 如何使用DP多顯卡訓(xùn)練??

  6. 如何繪制loss和acc曲線(xiàn)??

  7. 如何生成val的測(cè)評(píng)報(bào)告??

  8. 如何編寫(xiě)測(cè)試腳本測(cè)試測(cè)試集??

  9. 如何使用余弦退火策略調(diào)整學(xué)習(xí)率??

  10. 如何使用AverageMeter類(lèi)統(tǒng)計(jì)ACC和loss等自定義變量??

  11. 如何理解和統(tǒng)計(jì)ACC1和ACC5?

安裝包

1、安裝timm

使用pip就行,命令:

2、安裝yacs

yacs的作者大名鼎鼎的Ross Girshick,faster-rcnn的作者。github地址:https://github.com/rbgirshick/yacs

yacs是一個(gè)輕量級(jí)用于定義和管理系統(tǒng)配置的開(kāi)源庫(kù),是科學(xué)實(shí)驗(yàn)軟件中常用的參數(shù)配置。在機(jī)器學(xué)習(xí)、深度學(xué)習(xí)模型訓(xùn)練過(guò)程中的超參數(shù)配置(卷積神經(jīng)網(wǎng)絡(luò)的深度,初始學(xué)習(xí)率等)??茖W(xué)實(shí)驗(yàn)的重現(xiàn)性至關(guān)重要,因此,需要記錄實(shí)驗(yàn)過(guò)程中的參數(shù)設(shè)置,以達(dá)到后期進(jìn)行實(shí)驗(yàn)的重現(xiàn)。yacs使用一種簡(jiǎn)單的,可讀的yaml格式。

數(shù)據(jù)增強(qiáng)Cutout和Mixup

為了提高成績(jī)我在代碼中加入Cutout和Mixup這兩種增強(qiáng)方式。實(shí)現(xiàn)這兩種增強(qiáng)需要安裝torchtoolbox。安裝命令:

Cutout實(shí)現(xiàn),在transforms中。

需要導(dǎo)入包:from timm.data.mixup import Mixup,

定義Mixup,和SoftTargetCrossEntropy

參數(shù)詳解:?

  • mixup_alpha (float): mixup alpha 值,如果 > 0,則 mixup 處于活動(dòng)狀態(tài)。

  • cutmix_alpha (float):cutmix alpha 值,如果 > 0,cutmix 處于活動(dòng)狀態(tài)。

  • cutmix_minmax (List[float]):cutmix 最小/最大圖像比率,cutmix 處于活動(dòng)狀態(tài),如果不是 None,則使用這個(gè) vs alpha。

  • 如果設(shè)置了 cutmix_minmax 則cutmix_alpha 默認(rèn)為1.0

  • prob (float): 每批次或元素應(yīng)用 mixup 或 cutmix 的概率。

  • switch_prob (float): 當(dāng)兩者都處于活動(dòng)狀態(tài)時(shí)切換cutmix 和mixup 的概率 。

  • mode (str): 如何應(yīng)用 mixup/cutmix 參數(shù)(每個(gè)’batch’,‘pair’(元素對(duì)),‘elem’(元素)。

  • correct_lam (bool): 當(dāng) cutmix bbox 被圖像邊框剪裁時(shí)應(yīng)用。lambda 校正

  • label_smoothing (float):將標(biāo)簽平滑應(yīng)用于混合目標(biāo)張量。

  • num_classes (int): 目標(biāo)的類(lèi)數(shù)。

項(xiàng)目結(jié)構(gòu)

mean_std.py:計(jì)算mean和std的值。

makedata.py:生成數(shù)據(jù)集。

models文件夾下的micronet.py、activation.py和microconfig.py:來(lái)自官方的pytorch版本的代碼。

  • micronet.py:網(wǎng)絡(luò)文件。?

  • activation.py:激活函數(shù)文件,定義了DYShiftMax激活函數(shù)。?

  • microconfig.py:網(wǎng)絡(luò)配置參數(shù)。定義了m0到m3網(wǎng)絡(luò)的參數(shù)。?

utils文件夾下的defaults.py定義了cfg的參數(shù),這些參數(shù)是m0到m3網(wǎng)絡(luò)的設(shè)置參數(shù)。

詳細(xì)的參數(shù)設(shè)置如下:?

M0:

M1:

M2:

M3:

為了能在DP方式中使用混合精度,還需要在模型的forward函數(shù)前增加@autocast().

計(jì)算mean和std

為了使模型更加快速的收斂,我們需要計(jì)算出mean和std的值,新建mean_std.py,插入代碼:

數(shù)據(jù)集結(jié)構(gòu):

運(yùn)行結(jié)果:

把這個(gè)結(jié)果記錄下來(lái),后面要用!

生成數(shù)據(jù)集

我們整理還的圖像分類(lèi)的數(shù)據(jù)集結(jié)構(gòu)是這樣的

pytorch和keras默認(rèn)加載方式是ImageNet數(shù)據(jù)集格式,格式是

新增格式轉(zhuǎn)化腳本makedata.py,插入代碼:

完成上面的內(nèi)容就可以開(kāi)啟訓(xùn)練和測(cè)試了。

今天分享圖像分類(lèi)的論文資料!都是CVPR高分論文!

關(guān)注【學(xué)姐帶你玩AI】公眾號(hào)

回復(fù)“CVPR”免費(fèi)獲??!

MicroNet實(shí)戰(zhàn)分享!使用MicroNet實(shí)現(xiàn)圖像分類(lèi)(一)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
孟州市| 澳门| 巩义市| 绥化市| 怀宁县| 四川省| 马公市| 大庆市| 乌鲁木齐县| 温州市| 涞水县| 博罗县| 读书| 伊宁市| 元朗区| 长白| 连城县| 合阳县| 武清区| 平昌县| 钟山县| 西平县| 孙吴县| 逊克县| 平塘县| 新昌县| 大荔县| 唐河县| 贡觉县| 胶南市| 卓尼县| 兴文县| 四会市| 红河县| 新源县| 酉阳| 杭州市| 株洲县| 扎赉特旗| 镇江市| 车险|