国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Yolov8改進(jìn)模型后使用預(yù)訓(xùn)練權(quán)重遷移學(xué)習(xí)訓(xùn)練自己的數(shù)據(jù)集

這篇具有很好參考價(jià)值的文章主要介紹了Yolov8改進(jìn)模型后使用預(yù)訓(xùn)練權(quán)重遷移學(xué)習(xí)訓(xùn)練自己的數(shù)據(jù)集。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

windows系統(tǒng)下YoLov8改進(jìn)模型訓(xùn)練自己的數(shù)據(jù)集

yolov8 github下載

1、此時(shí)確保自己的數(shù)據(jù)集格式是yolo 格式的(不會(huì)的去搜教程轉(zhuǎn)下格式)。
你的自制數(shù)據(jù)集文件夾擺放

Yolov8改進(jìn)模型后使用預(yù)訓(xùn)練權(quán)重遷移學(xué)習(xí)訓(xùn)練自己的數(shù)據(jù)集

主目錄文件夾擺放

Yolov8改進(jìn)模型后使用預(yù)訓(xùn)練權(quán)重遷移學(xué)習(xí)訓(xùn)練自己的數(shù)據(jù)集

自制數(shù)據(jù)集data.yaml文件路徑模板
path: ../datasets/VOCdevkit 
train: images/train  # train images (relative to 'path') 128 images
val: images/val  # val images (relative to 'path') 128 images
test:  # test images (optional)

names: 
  0: name1
  1: name2
  .....
2、把data.yaml放在yolov8–>ultralytics->datasets文件夾下面

Yolov8改進(jìn)模型后使用預(yù)訓(xùn)練權(quán)重遷移學(xué)習(xí)訓(xùn)練自己的數(shù)據(jù)集

3、然后模型配置改進(jìn)yaml文件在主目錄新建文件夾v8_cfg存放

Yolov8改進(jìn)模型后使用預(yù)訓(xùn)練權(quán)重遷移學(xué)習(xí)訓(xùn)練自己的數(shù)據(jù)集

模型改進(jìn)修改與yolov5 類似,只是修改的文件名稱與文件地址變化了

1.首先在yolov8–>ultralytics–>nn–>model.py添加你自己的新模型

2.然后在yolov8–>ultralytics–>nn–>task.py–>parse_model解析文件里面導(dǎo)入并添加你的模塊

3.修改yolov8n.yaml文件

4、權(quán)重.pt文件直接下載到主目錄下面

Yolov8改進(jìn)模型后使用預(yù)訓(xùn)練權(quán)重遷移學(xué)習(xí)訓(xùn)練自己的數(shù)據(jù)集

5、然后在主目錄下新建推理v8_train.py
from ultralytics import YOLO

if __name__ == '__main__':
    # 加載模型
    model = YOLO("./v8_cfg/yolov8n-test.yaml")  # build a new model from scratch
    results =model.train(data="data.yaml" ,epochs=500, model="yolov8n-test.yaml",imgsz=640,batch=30,workers = 2)
此時(shí)運(yùn)行改進(jìn)模型發(fā)現(xiàn)不會(huì)載入預(yù)訓(xùn)練權(quán)重,原因是因?yàn)閥olov8 model只能載入pt或者yaml,二者只能其一,我們改進(jìn)模型肯定要 選擇mode = yaml
(1)參考魔傀面具大佬的blibli將下面這段代碼插入yolov8–>ultralytics–>yolo–>engine–>model.py–>def _new,可以載入預(yù)訓(xùn)練權(quán)重進(jìn)行遷移學(xué)習(xí)(如果不想用預(yù)訓(xùn)練權(quán)重想從0開(kāi)始,則注釋就行)
""" 添加代碼bug """
ckpt = torch.load('yolov8n.pt')
csd = ckpt['model'].float().state_dict()
csd = intersect_dicts(csd,self.model.state_dict())
self.model.load_state_dict(csd,strict = False)
print(f'Transferred {len(csd)}/{len(self.model.state_dict())} items')
""" 添加代碼bug """
具體插入位置如下圖所示

Yolov8改進(jìn)模型后使用預(yù)訓(xùn)練權(quán)重遷移學(xué)習(xí)訓(xùn)練自己的數(shù)據(jù)集

(2)yolov8 train的時(shí)候會(huì)重新載入一次模型,用yolo測(cè)試模型yaml文件一次,后面又會(huì)覆蓋一次 所以這里需要修改代碼 文件路徑y(tǒng)olov8–>ultralytics–>yolo–>engine–>model.py–>def train
        self.trainer = TASK_MAP[self.task][1](overrides=overrides)
        # if not overrides.get('resume'):  # manually set model only if not resuming
        #     self.trainer.model = self.trainer.get_model(weights=self.model if self.ckpt else None, cfg=self.model.yaml)
        #     self.model = self.trainer.model

        self.trainer.model = self.model
插入具體位置如下圖所示

Yolov8改進(jìn)模型后使用預(yù)訓(xùn)練權(quán)重遷移學(xué)習(xí)訓(xùn)練自己的數(shù)據(jù)集文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-458788.html

6、然后在主目錄下新建推理文件v8_predict.py,將best.pt移動(dòng)到主目錄下 新建v8_images文件夾存放你需要推理的圖片
from ultralytics import YOLO

if __name__ == '__main__':
    # Load a model
    model = YOLO("best.pt")

    # Predict with the model
    results = model(source="v8_images",save=True,device= "cuda:0")  # predict on an image
7、2023.10.6更新,由于作者yolov8框架的更新,現(xiàn)在載入預(yù)訓(xùn)練模型可以使用作者的api接口 model.load(‘yolov8n.pt’)來(lái)使用,只要權(quán)重路徑是對(duì)的,也不用使用更改源碼的方式了。
from ultralytics import YOLO


if __name__ == '__main__':
    # 直接使用預(yù)訓(xùn)練模型創(chuàng)建模型.
    # model = YOLO('yolov8n.pt')
    # model.train(**{'cfg':'ultralytics/cfg/exp1.yaml', 'data':'dataset/data.yaml'})
    
    # 使用yaml配置文件來(lái)創(chuàng)建模型,并導(dǎo)入預(yù)訓(xùn)練權(quán)重.
    model = YOLO('ultralytics/cfg/models/v8/yolov8n.yaml')
    model.load('yolov8n.pt')
    model.train(**{'cfg':'ultralytics/cfg/PCB.yaml', 'data':'datasets/VOCPCB.yaml'})
    
    # 模型驗(yàn)證
    # model = YOLO('runs/detect/train11/weights/best.pt')
    # model.val(**{'cfg':'ultralytics/cfg/PCB.yaml', 'data':'datasets/VOCPCB.yaml'})
    
    # 模型推理
    # model = YOLO('runs/detect/yolov8n_exp/best.pt')
    # model.predict(source='dataset/images/test', **{'save':True})

    # 模型導(dǎo)出
    # model = YOLO("Weight/yolov8n.pt")  # load an official model
    # model.export(format="onnx")

到了這里,關(guān)于Yolov8改進(jìn)模型后使用預(yù)訓(xùn)練權(quán)重遷移學(xué)習(xí)訓(xùn)練自己的數(shù)據(jù)集的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包