在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

深度解析YOLOv7的網(wǎng)絡(luò)結(jié)構(gòu)

深度學(xué)習(xí)自然語言處理 ? 來源:深度學(xué)習(xí)沖鴨 ? 作者:Kissrabbit ? 2022-09-14 11:16 ? 次閱讀

最近,Scaled-YOLOv4的作者(也是后來的YOLOR的作者)和YOLOv4的作者AB大佬再次聯(lián)手推出了YOLOv7,目前來看,這一版的YOLOv7是一個比較正統(tǒng)的YOLO續(xù)作,畢竟有AB大佬在,得到了過YOLO原作的認(rèn)可。

網(wǎng)上已經(jīng)有了很多文章去從各個方面來測試YOLOv7,但關(guān)于YOLOv7到底長什么樣,似乎還沒有多少人做出介紹。由于YOLOv7再一次平衡好了參數(shù)量、計算量和性能之間的矛盾,所以,筆者也想嘗試YOLOv7的網(wǎng)絡(luò)結(jié)構(gòu)來削減模型的大小,因此,通過查看YOLOv7的config文件,勾勒出了YOLOv7的網(wǎng)絡(luò)結(jié)構(gòu),故而新開此章,斗膽將v7的網(wǎng)絡(luò)結(jié)構(gòu)介紹給各位讀者。請注意,本文只介紹YOLOv7的網(wǎng)絡(luò)結(jié)構(gòu),其余的技術(shù)點如Aux Head是不會涉及到。這一部分,筆者放在了自己的github上,鏈接如下,筆者暫且將YOLOv7的backbone命名為ELAN-Net

https://github.com/yjh0410/image_classification_pytorch

一、YOLOv7的backbone結(jié)構(gòu)

我們可以打開官方源碼中的yolov7.yaml文件,看到如圖1所示的網(wǎng)絡(luò)配置。YOLOv7的項目是繼承自YOLOv5,事實上,YOLOv7的第一作者為YOLO社區(qū)做的貢獻(xiàn),如Pytorch_YOLOv4、caled-YOLOv4、YOLOR等都沿用了YOLOv5的項目,很多超參幾乎就是拿來用了,包括這次的YOLOv7,畢竟YOLOv5項目久經(jīng)考驗,是很適合在它的基礎(chǔ)上做改進(jìn),省去了調(diào)參的麻煩。另外,在上圖中,我們還能看見anchor box,盡管YOLOv7采用的label assignment使用的是SimOTA,但bbox regression還是基于anchor box的,往往在實際任務(wù)中,使用anchor box等人工先驗會對實際任務(wù)帶來些好處。

d161dc88-3359-11ed-ba43-dac502259ad0.png圖1. YOLOv7的網(wǎng)絡(luò)配置

這里,我們主要看backbone的部分,熟悉YOLOv5的讀者應(yīng)該不難理解這種寫法,我們順著該配置即可勾勒出YOLOv7的backbone。我們詳細(xì)地來說一下,筆者會配合由筆者自己寫的pytorch代碼來幫助讀者理解。畢竟,官方代碼的可讀性實在是一言難盡。

首先,是最開始的stem層,如圖2所示,就是簡單地堆疊三層Conv卷積,每個Conv就是YOLOv5采用的標(biāo)準(zhǔn)的“卷積+BN+SiLU”三件套。相應(yīng)的代碼也展示在了下方,筆者將該層命名為“l(fā)ayer1”,輸出一個二倍降采樣的特征圖:

d19a81be-3359-11ed-ba43-dac502259ad0.png圖2. Backbone是Stem層
#ELANNetofYOLOv7
classELANNet(nn.Module):
"""
ELAN-NetofYOLOv7.
"""
def__init__(self,depthwise=False,num_classes=1000):
super(ELANNet,self).__init__()

self.layer_1=nn.Sequential(
Conv(3,32,k=3,p=1,depthwise=depthwise),
Conv(32,64,k=3,p=1,s=2,depthwise=depthwise),
Conv(64,64,k=3,p=1,depthwise=depthwise)
)

接下來,YOLOv7再用一層步長為2的卷積得到4倍降采樣圖,然后接了一連串卷積處理這個4被降采樣特征圖,而這些“一連串”的卷積便是就是YOLOv7論文中介紹的ELAN模塊了,官方給出的配置如下所示,我們可以對應(yīng)著論文原圖來一起看:

d1beeda6-3359-11ed-ba43-dac502259ad0.png圖3. YOLOv7的ELAN模塊結(jié)構(gòu)

按照上面的結(jié)構(gòu),我們便可以繪制出YOLOv7的核心模塊:ELAN的具體網(wǎng)絡(luò)結(jié)構(gòu)了,相應(yīng)的代碼也展示在了下方。請注意,ELAN的這種結(jié)構(gòu)的一個優(yōu)勢就是每個branch的操作中,輸入通道都是和輸出通道保持一致的,僅僅是最開始的兩個1x1卷積是有通道變化的。關(guān)于輸入輸出通道相等的優(yōu)勢,這一點早在shufflenet-v2中就已經(jīng)論證過了,是一條設(shè)計網(wǎng)絡(luò)的高效準(zhǔn)則之一。

classELANBlock(nn.Module):
"""
ELANBLockofYOLOv7'sbackbone
"""
def__init__(self,in_dim,out_dim,expand_ratio=0.5,depthwise=False):
super(ELANBlock,self).__init__()
inter_dim=int(in_dim*expand_ratio)
self.cv1=Conv(in_dim,inter_dim,k=1)
self.cv2=Conv(in_dim,inter_dim,k=1)
self.cv3=nn.Sequential(
Conv(inter_dim,inter_dim,k=3,p=1,depthwise=depthwise),
Conv(inter_dim,inter_dim,k=3,p=1,depthwise=depthwise)
)
self.cv4=nn.Sequential(
Conv(inter_dim,inter_dim,k=3,p=1,depthwise=depthwise),
Conv(inter_dim,inter_dim,k=3,p=1,depthwise=depthwise)
)

assertinter_dim*4==out_dim

self.out=Conv(inter_dim*4,out_dim,k=1)

defforward(self,x):
"""
Input:
x:[B,C,H,W]
Output:
out:[B,2C,H,W]
"""
x1=self.cv1(x)
x2=self.cv2(x)
x3=self.cv3(x2)
x4=self.cv4(x3)

#[B,C,H,W]->[B,2C,H,W]
out=self.out(torch.cat([x1,x2,x3,x4],dim=1))

returnout

d1e1f38c-3359-11ed-ba43-dac502259ad0.png圖4. YOLOv7的ELAN模塊結(jié)構(gòu)

不過,筆者好奇能不能直接拆分通道,一分為二呢?最開始的CSPNet就是這么干的,不過,到了YOLO這里,就換成了1x1卷積來壓縮。最后,ELAN模塊輸出的通道數(shù)是輸入的2倍。

于是,網(wǎng)絡(luò)的第二層也就搭建出來了,第二層輸出的就是4倍降采樣的特征圖了,如下方的代碼所示:

self.layer_2=nn.Sequential(
Conv(64,128,k=3,p=1,s=2,depthwise=depthwise),
ELANBlock(in_dim=128,out_dim=256,expand_ratio=0.5,depthwise=depthwise)
)

接下來,YOLOv7對該4倍降采樣的特征圖再進(jìn)行降采樣操作,不過,不同于以往的步長為2的卷積那么簡單,YOLOv7這里稍微設(shè)計得精細(xì)了一些,如下圖中的紅框部分所示,左邊的分支主要采用maxpooling(MP)來實現(xiàn)空間降采樣,并緊跟一個1x1卷積壓縮通道;右邊先用1x1卷積壓縮通道,然后再用步長為2的3x3卷積完成降采樣,最后,將兩個分支的結(jié)果合并,通道一個通道數(shù)等于輸入通道數(shù),但空間分辨率縮小2倍的特征圖。筆者暫且將其命名為“DownSample”層。相應(yīng)代碼已展示在下方。

d20747ea-3359-11ed-ba43-dac502259ad0.png圖5. YOLOv7的降采樣模塊
    def __init__(self, in_dim):
        super().__init__()
        inter_dim = in_dim // 2
        self.mp = nn.MaxPool2d((2, 2), 2)
        self.cv1 = Conv(in_dim, inter_dim, k=1)
        self.cv2 = nn.Sequential(
            Conv(in_dim, inter_dim, k=1),
            Conv(inter_dim, inter_dim, k=3, p=1, s=2)
        )

    def forward(self, x):
        """
        Input:
            x: [B, C, H, W]
        Output:
            out: [B, C, H//2, W//2]
        """
        # [B, C, H, W] -> [B, C//2, H//2, W//2]
        x1 = self.cv1(self.mp(x))
        x2 = self.cv2(x)

        # [B, C, H//2, W//2]
        out = torch.cat([x1, x2], dim=1)

        return out

隨后,綠框部分就是上面已經(jīng)介紹過的ELAN模塊,對被降采樣的特征圖進(jìn)行處理。自此往后,就是重復(fù)堆疊這兩塊,直到最后。那么,backbone的整體我們就全部了解了,整個backbone的代碼如下:

#ELANNetofYOLOv7
classELANNet(nn.Module):
"""
ELAN-NetofYOLOv7.
"""
def__init__(self,depthwise=False,num_classes=1000):
super(ELANNet,self).__init__()

self.layer_1=nn.Sequential(
Conv(3,32,k=3,p=1,depthwise=depthwise),
Conv(32,64,k=3,p=1,s=2,depthwise=depthwise),
Conv(64,64,k=3,p=1,depthwise=depthwise)#P1/2
)
self.layer_2=nn.Sequential(
Conv(64,128,k=3,p=1,s=2,depthwise=depthwise),
ELANBlock(in_dim=128,out_dim=256,expand_ratio=0.5,depthwise=depthwise)#P2/4
)
self.layer_3=nn.Sequential(
DownSample(in_dim=256),
ELANBlock(in_dim=256,out_dim=512,expand_ratio=0.5,depthwise=depthwise)#P3/8
)
self.layer_4=nn.Sequential(
DownSample(in_dim=512),
ELANBlock(in_dim=512,out_dim=1024,expand_ratio=0.5,depthwise=depthwise)#P4/16
)
self.layer_5=nn.Sequential(
DownSample(in_dim=1024),
ELANBlock(in_dim=1024,out_dim=1024,expand_ratio=0.25,depthwise=depthwise)#P5/32
)

self.avgpool=nn.AdaptiveAvgPool2d((1,1))
self.fc=nn.Linear(1024,num_classes)


defforward(self,x):
x=self.layer_1(x)
x=self.layer_2(x)
x=self.layer_3(x)
x=self.layer_4(x)
x=self.layer_5(x)

#[B,C,H,W]->[B,C,1,1]
x=self.avgpool(x)
#[B,C,1,1]->[B,C]
x=x.flatten(1)
x=self.fc(x)

returnx

當(dāng)然,以上代碼中的avgpool和fc兩個層請忽略,在檢測任務(wù)里我們是不需要這兩部分的。這里需要說一下的是layer5,按照前面幾層的配置,layer5應(yīng)該順其自然地輸出一個通道數(shù)為2048的32倍降采樣的圖,但這樣似乎會引來過多的計算量,YOLOv7就將其通道數(shù)還是控制在了1024。所以,C3、C4和C5的通道數(shù)就分別是512、1024和1024,不再是以往常見的256、512、1024了。Backbone的整體結(jié)構(gòu)展示在了圖6中。

d22bca3e-3359-11ed-ba43-dac502259ad0.png圖6. YOLOv7的Backbone網(wǎng)絡(luò)結(jié)構(gòu)

由于整個YOLOv7是采用了train from scratch策略,超參沿用久經(jīng)考驗的YOLOv5的,所以,backbone這一部門是沒有imagenet pre-trained的。不過,筆者在搭建了這個backbone后,在ImageNet上進(jìn)行了預(yù)訓(xùn)練,感興趣的讀者可以筆者提供的github的README中獲得預(yù)訓(xùn)練模型的下載鏈接。

二、YOLOv7的PaFPN結(jié)構(gòu)

接下來,我們介紹一下YOLOv7的FPN結(jié)構(gòu)。和之前的YOLOv4、YOLOv5一樣,YOLOv7仍采用PaFPN結(jié)構(gòu)。有了之前backbone的經(jīng)驗,這一部分也就容易多了,我們先看一下官方給出的配置文件,如下圖所示:

d24a0972-3359-11ed-ba43-dac502259ad0.png圖7. YOLOv7的Head結(jié)構(gòu)

首先,對于backbone最后輸出的32倍降采樣特征圖C5,我們先使用SPP處理一下。這部分的SPP是由Scaled-YOLOv4提出的SPP-CSP,在YOLOv5中已經(jīng)被用到了,沒有變化。經(jīng)過SPP的處理后,C5的通道數(shù)從1024縮減到512。隨后的過程和YOLOv5是一樣的,依循top down的路線,先后和C4、C3去融合,得到P3、P4和P5;再按照bottom-up的路線,再去和P4、P5做融合。唯一與YOLOv5不同的地方就是原先YOLOv5使用的BottleneckCSP被換成了YOLOv7的ELAN模塊。原先YOLOv5所使用的步長為2的下采樣卷積也換成了上面的YOLOv7設(shè)計的DownSample層。不過,Head中的ELAN和DownSample兩部分與Backbone中的這兩塊有些細(xì)微差別,具體結(jié)構(gòu)下面的兩圖所示。相應(yīng)的代碼筆者也給出了。

d27e35c6-3359-11ed-ba43-dac502259ad0.png圖8. Head中的ELAN結(jié)構(gòu)圖d2a01506-3359-11ed-ba43-dac502259ad0.png圖9. Head中的DownSample結(jié)構(gòu)圖
classELANBlock(nn.Module):
"""
ELANBLockofYOLOv7'shead
"""
def__init__(self,in_dim,out_dim,expand_ratio=0.5,depthwise=False,act_type='silu',norm_type='BN'):
super(ELANBlock,self).__init__()
inter_dim=int(in_dim*expand_ratio)
inter_dim2=int(inter_dim*expand_ratio)
self.cv1=Conv(in_dim,inter_dim,k=1,act_type=act_type,norm_type=norm_type)
self.cv2=Conv(in_dim,inter_dim,k=1,act_type=act_type,norm_type=norm_type)
self.cv3=Conv(inter_dim,inter_dim2,k=3,p=1,act_type=act_type,norm_type=norm_type,depthwise=depthwise)
self.cv4=Conv(inter_dim2,inter_dim2,k=3,p=1,act_type=act_type,norm_type=norm_type,depthwise=depthwise)
self.cv5=Conv(inter_dim2,inter_dim2,k=3,p=1,act_type=act_type,norm_type=norm_type,depthwise=depthwise)
self.cv6=Conv(inter_dim2,inter_dim2,k=3,p=1,act_type=act_type,norm_type=norm_type,depthwise=depthwise)

self.out=Conv(inter_dim*2+inter_dim2*4,out_dim,k=1)


defforward(self,x):
"""
Input:
x:[B,C_in,H,W]
Output:
out:[B,C_out,H,W]
"""
x1=self.cv1(x)
x2=self.cv2(x)
x3=self.cv3(x2)
x4=self.cv4(x3)
x5=self.cv5(x4)
x6=self.cv6(x5)

#[B,C_in,H,W]->[B,C_out,H,W]
out=self.out(torch.cat([x1,x2,x3,x4,x5,x6],dim=1))

returnout


classDownSample(nn.Module):
def__init__(self,in_dim,depthwise=False,act_type='silu',norm_type='BN'):
super().__init__()
inter_dim=in_dim
self.mp=nn.MaxPool2d((2,2),2)
self.cv1=Conv(in_dim,inter_dim,k=1,act_type=act_type,norm_type=norm_type)
self.cv2=nn.Sequential(
Conv(in_dim,inter_dim,k=1,act_type=act_type,norm_type=norm_type),
Conv(inter_dim,inter_dim,k=3,p=1,s=2,act_type=act_type,norm_type=norm_type,depthwise=depthwise)
)

defforward(self,x):
"""
Input:
x:[B,C,H,W]
Output:
out:[B,2C,H//2,W//2]
"""
#[B,C,H,W]->[B,C//2,H//2,W//2]
x1=self.cv1(self.mp(x))
x2=self.cv2(x)

#[B,C,H//2,W//2]
out=torch.cat([x1,x2],dim=1)

returnout

整個PaFPN的融合過程如下圖所示,筆者在途中標(biāo)記出了通道的變化,在PaFPN的最后,YOLOv7使用了兩層RepConv去調(diào)整最終輸出的P3、P4和P5的通道數(shù)。在最后,YOLOv7還是一如既往地使用三層1x1卷積去預(yù)測objectness、class和bbox三部分。注意,YOLOv7還是一如既往地采用coupled head,而非YOLOX中的decoupled head。因為decoupled head會帶來過多的參數(shù)量和計算量,性能提升很微小,性價比不高。Head部分的代碼,筆者也在下方給出了,感興趣的讀者可以查看。

d2b2e4e2-3359-11ed-ba43-dac502259ad0.png圖10. YOLOv7的Head結(jié)構(gòu)圖
#PaFPN-ELAN(YOLOv7's)
classPaFPNELAN(nn.Module):
def__init__(self,
in_dims=[256,512,512],
out_dim=[256,512,1024],
depthwise=False,
norm_type='BN',
act_type='silu'):
super(PaFPNELAN,self).__init__()
self.in_dims=in_dims
self.out_dim=out_dim
c3,c4,c5=in_dims

#topdwon
##P5->P4
self.cv1=Conv(c5,256,k=1,norm_type=norm_type,act_type=act_type)
self.cv2=Conv(c4,256,k=1,norm_type=norm_type,act_type=act_type)
self.head_elan_1=ELANBlock(in_dim=256+256,
out_dim=256,
depthwise=depthwise,
norm_type=norm_type,
act_type=act_type)

#P4->P3
self.cv3=Conv(256,128,k=1,norm_type=norm_type,act_type=act_type)
self.cv4=Conv(c3,128,k=1,norm_type=norm_type,act_type=act_type)
self.head_elan_2=ELANBlock(in_dim=128+128,
out_dim=128,#128
depthwise=depthwise,
norm_type=norm_type,
act_type=act_type)

#bottomup
#P3->P4
self.mp1=DownSample(128,act_type=act_type,norm_type=norm_type,depthwise=depthwise)
self.head_elan_3=ELANBlock(in_dim=256+256,
out_dim=256,#256
depthwise=depthwise,
norm_type=norm_type,
act_type=act_type)

#P4->P5
self.mp2=DownSample(256,act_type=act_type,norm_type=norm_type,depthwise=depthwise)
self.head_elan_4=ELANBlock(in_dim=512+512,
out_dim=512,#512
depthwise=depthwise,
norm_type=norm_type,
act_type=act_type)

#RepConv
self.repconv_1=RepConv(128,out_dim[0],k=3,s=1,p=1)
self.repconv_2=RepConv(256,out_dim[1],k=3,s=1,p=1)
self.repconv_3=RepConv(512,out_dim[2],k=3,s=1,p=1)


defforward(self,features):
c3,c4,c5=features

#Topdown
##P5->P4
c6=self.cv1(c5)
c7=F.interpolate(c6,scale_factor=2.0)
c8=torch.cat([c7,self.cv2(c4)],dim=1)
c9=self.head_elan_1(c8)
##P4->P3
c10=self.cv3(c9)
c11=F.interpolate(c10,scale_factor=2.0)
c12=torch.cat([c11,self.cv4(c3)],dim=1)
c13=self.head_elan_2(c12)

#Bottomup
#p3->P4
c14=self.mp1(c13)
c15=torch.cat([c14,c9],dim=1)
c16=self.head_elan_3(c15)
#P4->P5
c17=self.mp2(c16)
c18=torch.cat([c17,c5],dim=1)
c19=self.head_elan_4(c18)

#RepCpnv
c20=self.repconv_1(c13)
c21=self.repconv_2(c16)
c22=self.repconv_3(c19)

out_feats=[c20,c21,c22]#[P3,P4,P5]

returnout_feats

三、結(jié)束語

那么,至此,YOLOv7的網(wǎng)絡(luò)結(jié)構(gòu)就全部繪制出了,本文的目的也達(dá)到了。當(dāng)然,YOLOv7還有E-ELAN結(jié)構(gòu),這一點,筆者暫且不做介紹了,有了相關(guān)基礎(chǔ),相信讀者們也不難自行分析YOLOv7的其他網(wǎng)絡(luò)結(jié)構(gòu)。對于YOLOv7的其他技術(shù)點,如Aux Head、RepConv的設(shè)計、YOLOR中的隱性知識(Implicit knowledge)等,筆者就不做介紹了。

最后,感謝各位讀者的支持。對于YOLOv7的網(wǎng)絡(luò)結(jié)構(gòu),讀者有任何問題都可以在評論區(qū)留言,僅憑筆者的一己之見,不免會落入某種獨斷與偏見之中。

審核編輯:湯梓紅


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴

原文標(biāo)題:長文詳解YOLOv7的網(wǎng)絡(luò)結(jié)構(gòu)

文章出處:【微信號:zenRRan,微信公眾號:深度學(xué)習(xí)自然語言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    YOLOV7網(wǎng)絡(luò)架構(gòu)解讀

    繼美團(tuán)發(fā)布YOLOV6之后,YOLO系列原作者也發(fā)布了YOLOV7
    的頭像 發(fā)表于 11-29 10:00 ?2198次閱讀
    <b class='flag-5'>YOLOV7</b><b class='flag-5'>網(wǎng)絡(luò)</b>架構(gòu)解讀

    神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索有什么優(yōu)勢?

    ,稍有不同就無法復(fù)現(xiàn)論文的結(jié)果。而網(wǎng)絡(luò)結(jié)構(gòu)作為一種特殊的超參數(shù),在深度學(xué)習(xí)整個環(huán)節(jié)中扮演著舉足輕重的角色。在圖像分類任務(wù)上大放異彩的ResNet、在機(jī)器翻譯任務(wù)上稱霸的Transformer等網(wǎng)絡(luò)結(jié)構(gòu)
    發(fā)表于 09-11 11:52

    YOLOv5網(wǎng)絡(luò)結(jié)構(gòu)解析

    1、YOLOv5 網(wǎng)絡(luò)結(jié)構(gòu)解析  YOLOv5針對不同大小(n, s, m, l, x)的網(wǎng)絡(luò)整體架構(gòu)都是一樣的,只不過會在每個子模塊中采用
    發(fā)表于 10-31 16:30

    yolov7 onnx模型在NPU上太慢了怎么解決?

    ://github.com/WongKinYiu/yolov7/releases下載yolov7-tiny.pt ,并重命名yolov7tiny.pt2.將yolov7tiny.pt轉(zhuǎn)
    發(fā)表于 04-04 06:13

    無法使用MYRIAD在OpenVINO trade中運行YOLOv7自定義模型怎么解決?

    無法確定如何將 YOLOv7 模型的重量(.pt 文件)轉(zhuǎn)換為OpenVINO?中間表示 (IR) 并推斷有 MYRIAD 的 IR。 分辨率 轉(zhuǎn)換使用此 GitHub* 存儲庫
    發(fā)表于 08-15 08:29

    環(huán)形網(wǎng)絡(luò),環(huán)形網(wǎng)絡(luò)結(jié)構(gòu)是什么?

    環(huán)形網(wǎng)絡(luò),環(huán)形網(wǎng)絡(luò)結(jié)構(gòu)是什么? 這種結(jié)構(gòu)網(wǎng)絡(luò)形式主要應(yīng)用于令牌網(wǎng)中,在這種網(wǎng)絡(luò)結(jié)構(gòu)中各設(shè)備是直接通過電纜來串接的,最后形成一個閉環(huán),
    發(fā)表于 03-22 11:14 ?6328次閱讀

    網(wǎng)絡(luò)結(jié)構(gòu)自動設(shè)計算法——BlockQNN

    神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計一直是深度學(xué)習(xí)里的核心問題。在基于深度學(xué)習(xí)的分類、檢測、分割、跟蹤等任務(wù)中,基礎(chǔ)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)對整體算法的性能優(yōu)劣有著決定性
    的頭像 發(fā)表于 05-17 09:44 ?5837次閱讀
    <b class='flag-5'>網(wǎng)絡(luò)結(jié)構(gòu)</b>自動設(shè)計算法——BlockQNN

    一種改進(jìn)的深度神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索方法

    為提升網(wǎng)絡(luò)結(jié)構(gòu)的尋優(yōu)能力,提岀一種改進(jìn)的深度神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索方法。針對網(wǎng)絡(luò)結(jié)構(gòu)間距難以度量的問題,結(jié)合神經(jīng)網(wǎng)絡(luò)
    發(fā)表于 03-16 14:05 ?3次下載
    一種改進(jìn)的<b class='flag-5'>深度</b>神經(jīng)<b class='flag-5'>網(wǎng)絡(luò)結(jié)構(gòu)</b>搜索方法

    YOLOv7訓(xùn)練自己的數(shù)據(jù)集包括哪些

    ? YOLOv7訓(xùn)練自己的數(shù)據(jù)集整個過程主要包括:環(huán)境安裝—制作數(shù)據(jù)集—模型訓(xùn)練—模型測試—模型推理 一、準(zhǔn)備深度學(xué)習(xí)環(huán)境 本人的筆記本電腦系統(tǒng)是:Windows10 首先下載YOLOv7的代碼
    的頭像 發(fā)表于 05-29 15:18 ?1315次閱讀
    <b class='flag-5'>YOLOv7</b>訓(xùn)練自己的數(shù)據(jù)集包括哪些

    一文徹底搞懂YOLOv8【網(wǎng)絡(luò)結(jié)構(gòu)+代碼+實操】

    從上面可以看出,YOLOv8 主要參考了最近提出的諸如 YOLOX、YOLOv6、YOLOv7 和 PPYOLOE 等算法的相關(guān)設(shè)計,本身的創(chuàng)新點不多,偏向工程實踐,主推的還是 ultralytics 這個框架本身。
    的頭像 發(fā)表于 06-15 17:15 ?1.3w次閱讀
    一文徹底搞懂<b class='flag-5'>YOLOv</b>8【<b class='flag-5'>網(wǎng)絡(luò)結(jié)構(gòu)</b>+代碼+實操】

    一文徹底搞懂YOLOv8(網(wǎng)絡(luò)結(jié)構(gòu)+代碼+實操)

    查看 N/S/M/L/X 等不同大小模型,可以發(fā)現(xiàn) N/S 和 L/X 兩組模型只是改了縮放系數(shù),但是 S/M/L 等骨干網(wǎng)絡(luò)的通道數(shù)設(shè)置不一樣,沒有遵循同一套縮放系數(shù)。如此設(shè)計的原因應(yīng)該是同一套縮放系數(shù)下的通道設(shè)置不是最優(yōu)設(shè)計,YOLOv7
    的頭像 發(fā)表于 06-19 16:55 ?4.9w次閱讀
    一文徹底搞懂<b class='flag-5'>YOLOv</b>8(<b class='flag-5'>網(wǎng)絡(luò)結(jié)構(gòu)</b>+代碼+實操)

    yolov5和YOLOX正負(fù)樣本分配策略

    整體上在正負(fù)樣本分配中,yolov7的策略算是yolov5和YOLOX的結(jié)合。因此本文先從yolov5和YOLOX正負(fù)樣本分配策略分析入手,后引入到YOLOv7
    發(fā)表于 08-14 11:45 ?2535次閱讀
    <b class='flag-5'>yolov</b>5和YOLOX正負(fù)樣本分配策略

    使用OpenVINO優(yōu)化并部署訓(xùn)練好的YOLOv7模型

    在《英特爾銳炫 顯卡+ oneAPI 和 OpenVINO 實現(xiàn)英特爾 視頻 AI 計算盒訓(xùn)推一體-上篇》一文中,我們詳細(xì)介紹基于英特爾 獨立顯卡搭建 YOLOv7 模型的訓(xùn)練環(huán)境,并完成了 YOLOv7 模型訓(xùn)練,獲得了最佳精度的模型權(quán)重。
    的頭像 發(fā)表于 08-25 11:08 ?1820次閱讀
    使用OpenVINO優(yōu)化并部署訓(xùn)練好的<b class='flag-5'>YOLOv7</b>模型

    深度學(xué)習(xí)YOLOv3 模型設(shè)計的基本思想

    在檢測任務(wù)中,將圖中C0后面的平均池化、全連接層和Softmax去掉,保留從輸入到C0部分的網(wǎng)絡(luò)結(jié)構(gòu),作為檢測模型的基礎(chǔ)網(wǎng)絡(luò)結(jié)構(gòu),也稱為骨干網(wǎng)絡(luò) YOLOv3模型會在骨干
    發(fā)表于 10-17 10:32 ?415次閱讀
    <b class='flag-5'>深度</b>學(xué)習(xí)<b class='flag-5'>YOLOv</b>3 模型設(shè)計的基本思想

    詳細(xì)解讀YOLOV7網(wǎng)絡(luò)架構(gòu)設(shè)計

    YOLOV7提出了輔助頭的一個訓(xùn)練方法,主要目的是通過增加訓(xùn)練成本,提升精度,同時不影響推理的時間,因為輔助頭只會出現(xiàn)在訓(xùn)練過程中。
    發(fā)表于 11-27 10:45 ?1027次閱讀
    詳細(xì)解讀<b class='flag-5'>YOLOV7</b><b class='flag-5'>網(wǎng)絡(luò)</b>架構(gòu)設(shè)計
    主站蜘蛛池模板: 国产精品免费视频拍拍拍 | 国产高清网站 | 99久久久久国产精品免费 | 特黄特色视频 | 午夜视频福利 | 国产成人久视频免费 | 黄色国产精品 | 一级aaaaa毛片免费视频 | 婷婷综合激六月情网 | 精品久久看 | 五月天丁香婷婷开心激情五月 | 欧美在线视频7777kkkk | 国产主播一区二区 | 欧美成人午夜片一一在线观看 | 亚洲va久久久噜噜噜久久狠狠 | 99精品国产高清自在线看超 | 国产小视频在线看 | 欧美一区二区不卡视频 | 二级特黄绝大片免费视频大片 | 狠狠色丁香婷婷综合橹不卡 | a欧美在线 | 男女刺激性视频大片 | 夜色321看片资源站 夜色sese | 青草青草视频2免费观看 | 国产网站在线免费观看 | 狠狠色噜噜狠狠狠狠97影音先锋 | 天堂资源在线最新版 | 免费永久欧美性色xo影院 | 老师叫我下面含着精子去上课 | 日韩在线视频一区二区三区 | 大量喷潮free | 五月亭亭免费高清在线 | 亚洲精品精品一区 | 国产特黄特色的大片观看免费视频 | 国产在线视频网站 | 国产精品自线在线播放 | 亚洲国产激情在线一区 | 中国男女全黄大片一级 | 天天襙 | 日本啪啪小视频 | 色www亚洲国产张柏芝 |