最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Yolov5更換BiFPN的詳細(xì)步驟總結(jié)

 更新時(shí)間:2022年12月19日 15:17:28   作者:迪菲赫爾曼  
將YOLOv5中的PANet層修改為EfficientDet-BiFPN,實(shí)現(xiàn)自上而下與自下而上的深淺層特征雙向融合,明顯提升YOLOv5算法檢測(cè)精度,下面這篇文章主要給大家介紹了關(guān)于Yolov5更換BiFPN的詳細(xì)步驟,需要的朋友可以參考下

Yolov5如何更換BiFPN?

第一步:修改common.py

將如下代碼添加到common.py文件中

# BiFPN 
# 兩個(gè)特征圖add操作
class BiFPN_Add2(nn.Module):
    def __init__(self, c1, c2):
        super(BiFPN_Add2, self).__init__()
        # 設(shè)置可學(xué)習(xí)參數(shù) nn.Parameter的作用是:將一個(gè)不可訓(xùn)練的類型Tensor轉(zhuǎn)換成可以訓(xùn)練的類型parameter
        # 并且會(huì)向宿主模型注冊(cè)該參數(shù) 成為其一部分 即model.parameters()會(huì)包含這個(gè)parameter
        # 從而在參數(shù)優(yōu)化的時(shí)候可以自動(dòng)一起優(yōu)化
        self.w = nn.Parameter(torch.ones(2, dtype=torch.float32), requires_grad=True)
        self.epsilon = 0.0001
        self.conv = nn.Conv2d(c1, c2, kernel_size=1, stride=1, padding=0)
        self.silu = nn.SiLU()

    def forward(self, x):
        w = self.w
        weight = w / (torch.sum(w, dim=0) + self.epsilon)
        return self.conv(self.silu(weight[0] * x[0] + weight[1] * x[1]))


# 三個(gè)特征圖add操作
class BiFPN_Add3(nn.Module):
    def __init__(self, c1, c2):
        super(BiFPN_Add3, self).__init__()
        self.w = nn.Parameter(torch.ones(3, dtype=torch.float32), requires_grad=True)
        self.epsilon = 0.0001
        self.conv = nn.Conv2d(c1, c2, kernel_size=1, stride=1, padding=0)
        self.silu = nn.SiLU()

    def forward(self, x):
        w = self.w
        weight = w / (torch.sum(w, dim=0) + self.epsilon)  
        # Fast normalized fusion
        return self.conv(self.silu(weight[0] * x[0] + weight[1] * x[1] + weight[2] * x[2]))

第二步:修改yolo.py

parse_model函數(shù)中找到elif m is Concat:語句,在其后面加上BiFPN_Add相關(guān)語句

elif m is Concat:
    c2 = sum(ch[x] for x in f)
# 添加bifpn_add結(jié)構(gòu)
elif m in [BiFPN_Add2, BiFPN_Add3]:
    c2 = max([ch[x] for x in f])

第三步:修改train.py

將BiFPN_Add2和BiFPN_Add3函數(shù)中定義的w參數(shù),加入g1

g = [], [], []  # optimizer parameter groups
    bn = tuple(v for k, v in nn.__dict__.items() if 'Norm' in k)  # normalization layers, i.e. BatchNorm2d()
    for v in model.modules():
        # hasattr: 測(cè)試指定的對(duì)象是否具有給定的屬性,返回一個(gè)布爾值
        if hasattr(v, 'bias') and isinstance(v.bias, nn.Parameter):  # bias
            g[2].append(v.bias)
        if isinstance(v, bn):  # weight (no decay)
            g[1].append(v.weight)
        elif hasattr(v, 'weight') and isinstance(v.weight, nn.Parameter):  # weight (with decay)
            g[0].append(v.weight)
        # BiFPN_Concat
        elif isinstance(v, BiFPN_Add2) and hasattr(v, 'w') and isinstance(v.w, nn.Parameter):
            g[1].append(v.w)
        elif isinstance(v, BiFPN_Add3) and hasattr(v, 'w') and isinstance(v.w, nn.Parameter):
            g[1].append(v.w)

導(dǎo)入BiFPN_Add3, BiFPN_Add2

from models.common import BiFPN_Add3, BiFPN_Add2

第四步:修改yolov5.yaml

Concat全部換成BiFPN_Add

注意:BiFPN_Add本質(zhì)是add操作,因此輸入層通道數(shù)、feature map要完全對(duì)應(yīng)

2022.8.25 官方也提供了BiFPN,可以嘗試用官方的
關(guān)于5m加BiFPN的文件我已經(jīng)更新到了我的Git

總結(jié)

到此這篇關(guān)于Yolov5更換BiFPN的文章就介紹到這了,更多相關(guān)Yolov5更換BiFPN內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 自動(dòng)轉(zhuǎn)換Python代碼為HTML界面的GUI庫remi使用探究

    自動(dòng)轉(zhuǎn)換Python代碼為HTML界面的GUI庫remi使用探究

    這篇文章主要為大家介紹了自動(dòng)轉(zhuǎn)換Python代碼為HTML界面的GUI庫remi使用探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • Python 處理數(shù)據(jù)的實(shí)例詳解

    Python 處理數(shù)據(jù)的實(shí)例詳解

    這篇文章主要介紹了Python 處理數(shù)據(jù)的實(shí)例詳解的相關(guān)資料,這里主要介紹Python 常用的基礎(chǔ)知識(shí)并附實(shí)例,需要的朋友可以參考下
    2017-08-08
  • python GUI模擬實(shí)現(xiàn)計(jì)算器

    python GUI模擬實(shí)現(xiàn)計(jì)算器

    這篇文章主要為大家詳細(xì)介紹了python GUI模擬實(shí)現(xiàn)計(jì)算器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-06-06
  • 如何對(duì)numpy?矩陣進(jìn)行通道間求均值

    如何對(duì)numpy?矩陣進(jìn)行通道間求均值

    這篇文章主要介紹了如何對(duì)numpy?矩陣進(jìn)行通道間求均值,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • Python模擬登陸淘寶并統(tǒng)計(jì)淘寶消費(fèi)情況的代碼實(shí)例分享

    Python模擬登陸淘寶并統(tǒng)計(jì)淘寶消費(fèi)情況的代碼實(shí)例分享

    借助urllib、urllib2和BeautifulSoup等幾個(gè)模塊的常用爬蟲開發(fā)組合,我們能夠輕易實(shí)現(xiàn)一份淘寶對(duì)賬單,這里我們就來看一則Python模擬登陸淘寶并統(tǒng)計(jì)淘寶消費(fèi)情況的代碼實(shí)例分享:
    2016-07-07
  • Python字符串格式化輸出代碼實(shí)例

    Python字符串格式化輸出代碼實(shí)例

    這篇文章主要介紹了Python字符串格式化輸出代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • Python中使用dom模塊生成XML文件示例

    Python中使用dom模塊生成XML文件示例

    這篇文章主要介紹了Python中使用dom模塊生成XML文件示例,本文講解了dom模塊的主要方法、詳細(xì)的代碼實(shí)例,需要的朋友可以參考下
    2015-04-04
  • Python定時(shí)器實(shí)例代碼

    Python定時(shí)器實(shí)例代碼

    這篇文章主要介紹了Python定時(shí)器實(shí)例代碼,向大家分享了兩部分代碼示例,一個(gè)是通過線程實(shí)現(xiàn)定時(shí)器timer,另一個(gè)是Python實(shí)現(xiàn)的精度可調(diào)的定時(shí)器實(shí)例,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-11-11
  • 從零學(xué)python系列之從文件讀取和保存數(shù)據(jù)

    從零學(xué)python系列之從文件讀取和保存數(shù)據(jù)

    在Python一般都是運(yùn)用內(nèi)置函數(shù)open()與文件進(jìn)行交互,下面說說具體用法
    2014-05-05
  • pytorch之ImageFolder使用詳解

    pytorch之ImageFolder使用詳解

    今天小編就為大家分享一篇pytorch之ImageFolder使用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01

最新評(píng)論

深州市| 西宁市| 东台市| 商城县| 闽清县| 新和县| 乐亭县| 平南县| 驻马店市| 开鲁县| 台前县| 搜索| 信丰县| 肇东市| 旬阳县| 庆安县| 泊头市| 元氏县| 东乡族自治县| 青铜峡市| 呼图壁县| 舒兰市| 门源| 正蓝旗| 赤水市| 固始县| 云浮市| 临漳县| 泸定县| 商丘市| 宣威市| 积石山| 项城市| 安乡县| 宝丰县| 长丰县| 杂多县| 赤水市| 新竹县| 东明县| 石阡县|