聯系我們 - 廣告服務 - 聯系電話:
您的當前位置: > 關注 > > 正文

新消息丨windows10運行ssd訓練自己的數據集 pytorch1.8.0+cuda111的數據集

來源:CSDN 時間:2023-03-31 07:51:34

運行環境:

1、win10  2、pytorch 1.8.0+cuda 111(1.9.0會報錯)  3、pycharm

(一)數據集準備階段


(資料圖)

第一步:新建VOC2007文件夾,然后再在里面新建三個文件ImageSets–>main JPEGImages(存放照片),Annotations(存放xml文件)。 第二步:對自己的照片進行標注,工具為labelimg,這個就不多贅述了

(二)ssd代碼準備階段

第一步:再github下載star最多的ssd源代碼https://github.com/amdegroot/ssd.pytorch 第二步:下載權重文件VGG16 https://s3.amazonaws.com/amdegroot-models/vgg16_reducedfc.pth 第三步:解壓ssd文件,解壓之后在打開SSD/data文件夾,在這之下新建一個VOCdevkit文件夾 第四步:將自己的VOC2007數據集放到VOCdevkit文件夾中 第五步:在根目錄下新建一個weights文件夾,將VGG16放進去

(三)sdd代碼修改階段

第一步:將文件導入pycharm中打開 第二步:打開data/init.py: 將第三行的from .coco import COCODetection, COCOAnnotationTransform, COCO_CLASSES, COCO_ROOT, get_label_map 注釋掉。因為我們不使用coco數據集,而是使用自己訓練的。 第三步:打開data/config.py:第十五行的 num_classes改成自己設定的類別數+1,所以我這里是2 第四步:打開data/voc0712.py:

第二十行的VOC_CLASSES =改成自己的類別名,我的是tree;第二十三行的代碼改成VOC_ROOT = ‘./data/VOCdevkit/’;第93行改為image_sets=[(‘2007’, ‘trainval’)]。

第五步:打開layers/modules/multibox_loss.py: 在第97行的loss_c[pos] = 0的上面加上一句loss_c = loss_c.view(num, -1), 在第115行N = num_pos.data.sum()的后面加上.double,繼續在下面添加

這兩句代碼

第六步:打開ssd.py程序:把這里面所有的num_classes的數量都改為類別數+1,我的都是6。 第七步:打開train.py程序:搜索這里面的data[0],把這里面的[0]都刪掉,只保留data。 第84行的這兩行#if args.dataset_root == COCO_ROOT: # parser.error(‘Must specify dataset if specifying dataset_root’)注釋掉,因為我們不用COCO。 第165行的images, targets = next(batch_iterator)改成

try:            images, targets = next(batch_iterator)        except StopIteration:            batch_iterator = iter(data_loader)            images, targets = next(batch_iterator)

第198行的5000我改成500;迭代500次保存一次文件,大家可改可不改。第200行權重的名稱自己隨意,我改的是weights/ssd300_voc_。

**

(四)開始訓練

** 第一步:修改train.py中的batch-size,我的是rtx3060(6g),我就修改為24

第二步:開始訓練 python train.py (這個loss看著就不正常)

**

(五)測試

(六)遇到的問題

** 訓練的時候loss=“nan”, 修改train.py中的這個,修改為1e-4

責任編輯:

標簽:

相關推薦:

精彩放送:

新聞聚焦
Top 岛国精品在线