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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

MMDETECTION微调模型

發布時間:2023/12/18 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MMDETECTION微调模型 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在 COCO 數據集上預訓練的檢測器可以作為其他數據集(例如 CityScapes 和 KITTI 數據集)的良好預訓練模型。本教程指導用戶將Model Zoo 中提供的模型用于其他數據集以獲得更好的性能。

在新數據集上對模型進行微調有兩個步驟。

按照教程 2:自定義數據集添加對新數據集的支持。
修改本教程中將討論的配置。
以 Cityscapes Dataset 的微調過程為例,用戶需要修改配置中的五個部分。

繼承基本配置
為了減輕編寫整個配置的負擔并減少錯誤,MMDetection V2.0 支持從多個現有配置繼承配置。為了微調 Mask RCNN 模型,新的配置需要繼承 _base_/models/mask_rcnn_r50_fpn.py以構建模型的基本結構。要使用 Cityscapes 數據集,新配置也可以簡單地繼承_base_/datasets/cityscapes_instance.py. 對于訓練計劃等運行時設置,新配置需要繼承_base_/default_runtime.py. 這個配置在configs目錄中,用戶也可以選擇寫入整個內容而不是使用繼承。

_base_ = ['../_base_/models/mask_rcnn_r50_fpn.py','../_base_/datasets/cityscapes_instance.py', '../_base_/default_runtime.py' ]

修改頭
然后新配置需要根據新數據集的類號修改頭部。通過僅num_classes在 roi_head 中改變,預訓練模型的權重除最終預測頭外大部分都被重用。

model = dict(pretrained=None,roi_head=dict(bbox_head=dict(type='Shared2FCBBoxHead',in_channels=256,fc_out_channels=1024,roi_feat_size=7,num_classes=8,bbox_coder=dict(type='DeltaXYWHBBoxCoder',target_means=[0., 0., 0., 0.],target_stds=[0.1, 0.1, 0.2, 0.2]),reg_class_agnostic=False,loss_cls=dict(type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0),loss_bbox=dict(type='SmoothL1Loss', beta=1.0, loss_weight=1.0)),mask_head=dict(type='FCNMaskHead',num_convs=4,in_channels=256,conv_out_channels=256,num_classes=8,loss_mask=dict(type='CrossEntropyLoss', use_mask=True, loss_weight=1.0))))

修改數據集
用戶可能還需要準備數據集并編寫有關數據集的配置。MMDetection V2.0 已經支持 VOC、WIDER FACE、COCO 和 Cityscapes 數據集。

修改訓練計劃
微調超參數與默認計劃不同。它通常需要較小的學習率和較少的訓練時期

# optimizer # lr is set for a batch size of 8 optimizer = dict(type='SGD', lr=0.01, momentum=0.9, weight_decay=0.0001) optimizer_config = dict(grad_clip=None) # learning policy lr_config = dict(policy='step',warmup='linear',warmup_iters=500,warmup_ratio=0.001,step=[7]) # the max_epochs and step in lr_config need specifically tuned for the customized dataset runner = dict(max_epochs=8) log_config = dict(interval=100)

使用預訓練模型
要使用預訓練模型,新配置在load_from. 用戶可能需要在訓練前下載模型權重,以避免訓練期間的下載時間。

load_from = 'https://download.openmmlab.com/mmdetection/v2.0/mask_rcnn/mask_rcnn_r50_caffe_fpn_mstrain-poly_3x_coco/mask_rcnn_r50_caffe_fpn_mstrain-poly_3x_coco_bbox_mAP-0.408__segm_mAP-0.37_20200504_163245-42aa3d00.pth' # noqa

總結

以上是生活随笔為你收集整理的MMDETECTION微调模型的全部內容,希望文章能夠幫你解決所遇到的問題。

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