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

yolov5——問題記錄

這篇具有很好參考價(jià)值的文章主要介紹了yolov5——問題記錄。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

簡介
記錄自己學(xué)習(xí)yolov5中遇到的問題,隨即不定時(shí)更新,遇到問題記錄下來方便回顧。

2022.05.06
1、改用VOC數(shù)據(jù)集進(jìn)行訓(xùn)練,修改完格式后,運(yùn)行train.py報(bào)錯(cuò):
AssertionError: train: No labels in …/train.cache. Can not train without labels. See https://github.com/ultralytics/yolov5/wiki/Train-Custom-Data

解決方法:打開文件目錄下 utils/dataset.py 文件,ctrl+F搜索define label,然后將框中內(nèi)容修改為自己存放圖片的文件夾名稱,從"images"修改為"JPEGImages"即可。
yolov5——問題記錄

2022.6.12

1、用云服務(wù)器訓(xùn)練的時(shí)候,遇到了這個(gè)問題:
ImportError: libgthread-2.0.so.0: cannot open shared object file: No such file or directory
解決方法:

apt-get update

#安裝額外的包
apt-get install libxext-dev
apt-get install libxrender1
apt-get install libglib2.0-dev

2、凍結(jié)訓(xùn)練和解凍訓(xùn)練和預(yù)訓(xùn)練權(quán)重的問題

預(yù)訓(xùn)練權(quán)重是針對(duì)他們數(shù)據(jù)集訓(xùn)練得到的,如果是訓(xùn)練自己的數(shù)據(jù)集還能用嗎?
預(yù)訓(xùn)練權(quán)重對(duì)于不同的數(shù)據(jù)集是通用的,因?yàn)樘卣魇峭ㄓ玫?。一般來講,從0開始訓(xùn)練效果會(huì)很差,因?yàn)闄?quán)值太過隨機(jī),特征提取效果不明顯。對(duì)于目標(biāo)檢測(cè)模型來說,一般不從0開始訓(xùn)練,至少會(huì)使用主干部分的權(quán)值,雖然有些論文提到了可以不用預(yù)訓(xùn)練,但這主要是因?yàn)樗麄兊臄?shù)據(jù)集比較大而且他們的調(diào)參能力很強(qiáng)。如果從0開始訓(xùn)練,網(wǎng)絡(luò)在前幾個(gè)epoch的Loss可能會(huì)非常大,并且多次訓(xùn)練得到的訓(xùn)練結(jié)果可能相差很大,因?yàn)闄?quán)重初始化太過隨機(jī)。
因?yàn)槟繕?biāo)檢測(cè)模型里,主干特征提取部分所提取到的特征是通用的,把backbone凍結(jié)起來訓(xùn)練可以加快訓(xùn)練效率,也可以防止權(quán)值被破壞。在凍結(jié)階段,模型的主干被凍結(jié)了,特征提取網(wǎng)絡(luò)不發(fā)生改變,占用的顯存較小,僅對(duì)網(wǎng)絡(luò)進(jìn)行微調(diào)。在解凍階段,模型的主干不被凍結(jié)了,特征提取網(wǎng)絡(luò)會(huì)發(fā)生改變,占用的顯存較大,網(wǎng)絡(luò)所有的參數(shù)都會(huì)發(fā)生改變。舉個(gè)例子,如果在解凍階段設(shè)置batch_size為4,那么在凍結(jié)階段有可能可以把batch_size設(shè)置到8。下面是進(jìn)行凍結(jié)訓(xùn)練的示例代碼,假設(shè)前50個(gè)epoch凍結(jié),后50個(gè)epoch解凍:

關(guān)于預(yù)訓(xùn)練權(quán)重加載。更改完網(wǎng)絡(luò)結(jié)構(gòu)后,即使更改了主干特征提取網(wǎng)絡(luò),也是可以加載預(yù)訓(xùn)練權(quán)重的。通過加載預(yù)訓(xùn)練權(quán)重,可以將網(wǎng)絡(luò)中的參數(shù)初始化,我理解的是更有利于網(wǎng)絡(luò)模型的復(fù)現(xiàn),以及加快模型訓(xùn)練收斂速度。如下圖所示,會(huì)根據(jù)你的網(wǎng)絡(luò)結(jié)構(gòu),加載一部分參數(shù)。所以朋友們?nèi)绻敫木W(wǎng)絡(luò)的話,也可以選擇加載預(yù)訓(xùn)練模型的。

總結(jié):無論換什么主干?。?!都能用權(quán)重?。。《寄苡茫。?!都能用?。?!

3、訓(xùn)練時(shí)出現(xiàn)以下問題:
TypeError: init() missing 1 required positional argument: ‘dtype’
翻譯過來就是:類的構(gòu)造函數(shù)需要一個(gè)’dtype’參數(shù).但你創(chuàng)建類時(shí)沒有傳遞
解決方法:
在train.py中把 num_workers 改小一些

2022-6-14

添加注意力機(jī)制

1、第一步:在common.py文件中寫入注意力機(jī)制代碼,比如CBAM,將以下代碼復(fù)制到common.py下

# CBAM
class ChannelAttention(nn.Module):
    def __init__(self, in_planes, ratio=16):
        super(ChannelAttention, self).__init__()
        self.avg_pool = nn.AdaptiveAvgPool2d(1)
        self.max_pool = nn.AdaptiveMaxPool2d(1)
        self.f1 = nn.Conv2d(in_planes, in_planes // ratio, 1, bias=False)
        self.relu = nn.ReLU()
        self.f2 = nn.Conv2d(in_planes // ratio, in_planes, 1, bias=False)
        self.sigmoid = nn.Sigmoid()

    def forward(self, x):
        avg_out = self.f2(self.relu(self.f1(self.avg_pool(x))))
        max_out = self.f2(self.relu(self.f1(self.max_pool(x))))
        out = self.sigmoid(avg_out + max_out)
        return out


class SpatialAttention(nn.Module):
    def __init__(self, kernel_size=7):
        super(SpatialAttention, self).__init__()
        assert kernel_size in (3, 7), 'kernel size must be 3 or 7'
        padding = 3 if kernel_size == 7 else 1
        # (特征圖的大小-算子的size+2*padding)/步長+1
        self.conv = nn.Conv2d(2, 1, kernel_size, padding=padding, bias=False)
        self.sigmoid = nn.Sigmoid()

    def forward(self, x):
        # 1*h*w
        avg_out = torch.mean(x, dim=1, keepdim=True)
        max_out, _ = torch.max(x, dim=1, keepdim=True)
        x = torch.cat([avg_out, max_out], dim=1)
        # 2*h*w
        x = self.conv(x)
        # 1*h*w
        return self.sigmoid(x)


class CBAM(nn.Module):
    # CSP Bottleneck with 3 convolutions
    def __init__(self, c1, c2, ratio=16, kernel_size=7):  # ch_in, ch_out, number, shortcut, groups, expansion
        super(CBAM, self).__init__()
        self.channel_attention = ChannelAttention(c1, ratio)
        self.spatial_attention = SpatialAttention(kernel_size)

    def forward(self, x):
        out = self.channel_attention(x) * x
        # c*h*w
        # c*h*w * 1*h*w
        out = self.spatial_attention(out) * out
        return out

2、找到y(tǒng)olo.py文件下的parse_model函數(shù),將類名加入到下圖位置

yolov5——問題記錄

3、修改配置文件yaml,比如yolov5s.yaml,如下圖,將注意力機(jī)制加到backbone的最后一層(也可加在C3里面)

yolov5——問題記錄
然后,還沒完,還要繼續(xù)修改head部分。當(dāng)在網(wǎng)絡(luò)中添加了新的層之后,那么該層網(wǎng)絡(luò)之后的層的編號(hào)都會(huì)發(fā)生改變,看下圖,原本Detect指定的是[17,20,23],但當(dāng)添加過CBAM注意力層之后(添加在第9層的,9層之后的層數(shù)編號(hào)要1),修改Detect:[17,20,23]->[18,21,24]。同樣的,Concat 前的from系數(shù)也要修改,這樣才能保持原網(wǎng)絡(luò)結(jié)構(gòu)不發(fā)生特別大的改變。我們剛才把SE層加到了第9層,所以第9層之后的編號(hào)都會(huì)加1,這里我們要把后面兩個(gè)Concat的from系數(shù)分別由[-1,14]->[-1,15] ,[-1,10]->[-1,11]。
yolov5——問題記錄
至此,注意力機(jī)制添加完畢,其他注意力機(jī)制添加方法相同。

2022-06-27
thop庫安裝與使用

1、介紹,yolov5用 thop 三方庫來計(jì)算網(wǎng)絡(luò)的GFLOPs,正確安裝thop才會(huì)顯示GFLOPs
2、問題,直接pip install thop,然后會(huì)顯示已成功安裝。但是!問題來了,訓(xùn)練時(shí)并不顯示網(wǎng)絡(luò)的GFLOPs!卸載再安裝,還是不行!
3、原因就是thop安裝方法錯(cuò)了,要將github上thop下載到本地,再安裝,才能正確顯示。
安裝步驟如下:
第一步,找到 thop 包的github官方鏈接 thop
第二步,下載壓縮文件,解壓到本地路徑
第三步,打開annaconda prompt,激活進(jìn)入自己的虛擬環(huán)境,cd到壓縮包解壓的路徑下
第四步,輸入命令python setup.py install,等待安裝完成即可

2022-08-05

問題:
使用YOLOv5訓(xùn)練時(shí),出現(xiàn)以下錯(cuò)誤:

RuntimeError: result type Float can’t be cast to the desired output type long int

原因猜測(cè):

之前使用torch1.8.0和torchvision0.8.0沒什么問題,換了torch1.12.0和torchvision0.13.0后,loss.py函數(shù),就報(bào)錯(cuò)了,可能也是yolov5版本更新的問題。

解決方法:

修改loss.py的兩處內(nèi)容
1、打開loss.py,ctrl+F 搜索 ,輸入 【for i in range(self.nl)】,找到下面內(nèi)容:
yolov5——問題記錄
下面是修改后的內(nèi)容,方便復(fù)制:

anchors, shape = self.anchors[i], p[i].shape

2、ctrl+F 搜索,輸入【indices.append】,找到下面的內(nèi)容,注意看清楚,別找錯(cuò)了
yolov5——問題記錄

indices.append((b, a, gj.clamp_(0, shape[2] - 1), gi.clamp_(0, shape[3] - 1))) # image, anchor, grid

3、保存運(yùn)行,完美解決,已親測(cè)可用!

2022-08-16

問題:
tpdm安裝
有時(shí)候,pip install tpdm安裝失敗
換用這行命令:conda install -c conda-forge tqdm

2022-08-25
問題:
云服務(wù)器,Ubuntu系統(tǒng)下,運(yùn)行python,報(bào)錯(cuò):ModuleNotFoundError: No module named '_tkinter',提示缺少tkinter模塊

解決方法:文章來源地址http://www.zghlxwxcb.cn/news/detail-457073.html

sudo apt-get update
sudo apt-get install python3.7-tk

到了這里,關(guān)于yolov5——問題記錄的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(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)文章

  • 【問題記錄】樹莓派+OpenCV+YOLOv5目標(biāo)檢測(cè)(Pytorch框架)

    【問題記錄】樹莓派+OpenCV+YOLOv5目標(biāo)檢測(cè)(Pytorch框架)

    ?-【學(xué)習(xí)資料】 子豪兄的零基礎(chǔ)樹莓派教程 https://github.com/TommyZihao/ZihaoTutorialOfRaspberryPi/blob/master/%E7%AC%AC2%E8%AE%B2%EF%BC%9A%E6%A0%91%E8%8E%93%E6%B4%BE%E6%96%B0%E6%89%8B%E6%97%A0%E7%97%9B%E5%BC%80%E6%9C%BA%E6%8C%87%E5%8D%97.md#%E7%83%A7%E5%BD%95%E9%95%9C%E5%83%8F 第2講:樹莓派新手無痛開機(jī)指南【子豪兄的樹莓派

    2024年02月02日
    瀏覽(28)
  • 學(xué)習(xí)記錄09:快速上手簡單改進(jìn)yolov5目標(biāo)檢測(cè)網(wǎng)絡(luò)

    學(xué)習(xí)記錄09:快速上手簡單改進(jìn)yolov5目標(biāo)檢測(cè)網(wǎng)絡(luò)

    ??這篇博客主要是簡單介紹一下如何改進(jìn)yolov5,但是不會(huì)講得太深,因?yàn)槲乙仓皇沁\(yùn)用了幾個(gè)月,并沒有細(xì)讀每一段代碼,我只是為了改而改,不會(huì)深究他的代碼邏輯,python代碼他確實(shí)寫的很優(yōu)雅,但是我不打算學(xué)習(xí)這種優(yōu)雅,能畢業(yè)就行,以后又不從事python工作,也不繼

    2023年04月21日
    瀏覽(22)
  • 解決YOLOv5訓(xùn)練自己的數(shù)據(jù)集出現(xiàn)No labels in path\train.cache問題

    解決YOLOv5訓(xùn)練自己的數(shù)據(jù)集出現(xiàn)No labels in path\train.cache問題

    不知道是第幾次訓(xùn)練了,最開始跑也出現(xiàn)了這個(gè)問題,當(dāng)時(shí)怎么解決的時(shí)隔了幾個(gè)月又完全忘了,還好翻看了幾個(gè)博客后回憶了起來 我自己的數(shù)據(jù)集的格式是VOC格式,如下圖 ?若沒有對(duì)數(shù)據(jù)集進(jìn)行劃分,則使用makeTXT.py對(duì)數(shù)據(jù)集進(jìn)行劃分,若數(shù)據(jù)集已經(jīng)劃分,則可忽略這一步

    2024年02月12日
    瀏覽(44)
  • YOLOv5簡介

    YOLOv5簡介

    一、輸入端 1. Mosaic數(shù)據(jù)增強(qiáng): CutMix 數(shù)據(jù)增強(qiáng) :隨機(jī)生成一個(gè)裁剪框Box,裁剪掉A圖中的相應(yīng)位置,然后用B圖相應(yīng)位置的ROI放到A中被裁剪的區(qū)域中形成新的樣本。采用加權(quán)求和的方式計(jì)算損失,將A區(qū)域中被cut掉的位置隨機(jī)填充訓(xùn)練集中其他數(shù)據(jù)的區(qū)域像素值,分類結(jié)果按一

    2024年02月03日
    瀏覽(20)
  • yolov5訓(xùn)練自己的數(shù)據(jù)集

    yolov5訓(xùn)練自己的數(shù)據(jù)集

    1.YOLOv5為開源代碼,直接從github上下載,首先打開github官網(wǎng),下載。 下載使用pycharm打開,有圖中這些文件,? ?其中 data:主要是存放一些超參數(shù)的配置文件(這些文件(yaml文件)是用來配置訓(xùn)練集和測(cè)試集還有驗(yàn)證集的路徑的,其中還包括目標(biāo)檢測(cè)的種類數(shù)和種類的名稱)

    2024年02月07日
    瀏覽(846)
  • 使用Yolov5訓(xùn)練自己的模型

    使用Yolov5訓(xùn)練自己的模型

    本文主要介紹如何運(yùn)用開源Yolov5模型,結(jié)合自己的數(shù)據(jù),訓(xùn)練其他目標(biāo)檢測(cè)模型。 基礎(chǔ)準(zhǔn)備工作: anaconda 適用Yolov5的虛擬環(huán)境 git上下載Yolov5并調(diào)通測(cè)試代碼 https://github.com/ultralytics/yolov5 https://github.com/ultralytics/yolov5 本次用的環(huán)境: python==3.7 pytorch==1.7.1 torchvision==0.8.2 torchaud

    2024年02月05日
    瀏覽(23)
  • 深度學(xué)習(xí)(八)---zed調(diào)用yolov5之目標(biāo)檢測(cè)遇到的問題及解決

    1.前言 zed調(diào)用yolov5進(jìn)行目標(biāo)檢測(cè)時(shí)遇到的問題,記錄下~~ 2.環(huán)境信息 3.問題及解決 問題1: RuntimeError: cuDNN error: CUDNN_STATUS_MAPPING_ERROR 原因: cuda 沒有正確調(diào)用,導(dǎo)致運(yùn)行報(bào)錯(cuò) 解決: 重新正確引用cuda,可以參考 【深度學(xué)習(xí)(八)—zed調(diào)用yolov5模型進(jìn)行實(shí)時(shí)圖像推理】 小記:這

    2024年02月12日
    瀏覽(21)
  • [記錄解決YOLOv5加載權(quán)重文件報(bào)錯(cuò)問題]AttributeError: Can‘t get attribute ‘DetectionModel‘ on <module ‘models.yolo‘

    [記錄解決YOLOv5加載權(quán)重文件報(bào)錯(cuò)問題]AttributeError: Can‘t get attribute ‘DetectionModel‘ on <module ‘models.yolo‘

    1.GitHub(鏈接: link)找到更新后的v5版本。 2.找到models文件夾下的yolo.py,查找DetectionModel模塊,將圖片中的代碼(Segment部分、BaseModel部分、DetectionModel部分)粘貼至報(bào)錯(cuò)的yolo.py里。 3.粘貼完后,運(yùn)行yolo.py文件

    2024年02月12日
    瀏覽(20)
  • 【零基礎(chǔ)玩轉(zhuǎn)yolov5】yolov5訓(xùn)練自己的數(shù)據(jù)集(CPU訓(xùn)練+GPU訓(xùn)練)

    【零基礎(chǔ)玩轉(zhuǎn)yolov5】yolov5訓(xùn)練自己的數(shù)據(jù)集(CPU訓(xùn)練+GPU訓(xùn)練)

    ?博主也是最近開始玩yolov5的,甚至也是最近開始使用python的,很多東西都沒有接觸過,因此訓(xùn)練自己的數(shù)據(jù)集花了不少時(shí)間,所以想寫篇博客記錄一下,希望同樣是零基礎(chǔ)的小伙伴們可以更加輕松的上手。同時(shí)大家如果發(fā)現(xiàn)了錯(cuò)誤和理解偏差,歡迎指正。 參考資料: Yolo

    2024年02月06日
    瀏覽(31)
  • 【YOLO】yolov5訓(xùn)練自己的數(shù)據(jù)集

    【YOLO】yolov5訓(xùn)練自己的數(shù)據(jù)集

    【Python】樸實(shí)無華的yolov5環(huán)境配置(一) ??上面前期教程中,大致介紹了yolov5開發(fā)環(huán)境的配置方法和yolov5項(xiàng)目的基本結(jié)構(gòu),下一步就是基于yolov5預(yù)訓(xùn)練模型來訓(xùn)練自己的數(shù)據(jù)集,這對(duì)于只是想要使用yolov5這個(gè)工具的人,還是想要深入研究yolov5類似的目標(biāo)識(shí)別算法的人,都是

    2024年02月11日
    瀏覽(93)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包