yolov8-更換卷積模塊-ContextGuidedBlock_Down

源碼解讀

class ContextGuidedBlock_Down(nn.Module):"""the size of feature map divided 2, (H,W,C)---->(H/2, W/2, 2C)"""def __init__(self, nIn, dilation_rate=2, reduction=16):"""args:nIn: the channel of input feature mapnOut: the channel of output feature map, and nOut=2*nIn"""super().__init__()nOut = nIn * 2self.conv1x1 = ConvBNPReLU(nIn, nOut, 3, 2)  # size/2, channel: nIn--->nOutself.F_loc = ChannelWiseConv(nOut, nOut, 3, 1)self.F_sur = ChannelWiseDilatedConv(nOut, nOut, 3, 1, dilation_rate)self.bn = nn.BatchNorm2d(2 * nOut, eps=1e-3)self.act = nn.PReLU(2 * nOut)self.reduce = Conv(2 * nOut, nOut, 1, 1)  # reduce dimension: 2*nOut--->nOutself.F_glo = FGlo(nOut, reduction)def forward(self, input):output = self.conv1x1(input)loc = self.F_loc(output)sur = self.F_sur(output)joi_feat = torch.cat([loc, sur], 1)  # the joint featurejoi_feat = self.bn(joi_feat)joi_feat = self.act(joi_feat)joi_feat = self.reduce(joi_feat)  # channel= nOutoutput = self.F_glo(joi_feat)  # F_glo is employed to refine the joint featurereturn output

模塊:ConvBNPReLU,是一個卷積層,沒有偏置項,先卷積,在歸一化,在經過PReLU激活函數。

模塊:ChannelWiseConv,是一個通道卷積操作。在標準的卷積中,每個卷積核都會跨輸入特征圖的所有通道進行卷積操作,這意味著輸出的每個通道都是來自輸入的所有通道的信息融合。在通道卷積中,每個卷積核只在對應的單個輸入通道上操作,而不是跨通道。因此,每個輸出通道的特征僅由對應的單個輸入通道計算得出。通道卷積,對應的參數量更少,適合于移動端和嵌入式的部署。

模塊:ChannelWiseDilatedConv,是一個空洞卷積,空洞卷積適用于處理具有層次化結構或多尺度特征的任務,捕捉更廣泛的上下文信息。相當于擴大了卷積核,擴大的部分補0。

Relu與PRelu激活函數的對比。

模塊:FGlo,nn.AdaptiveAvgPool2d(1)?是 PyTorch 中的一個自適應平均池化層,其目的是對輸入的特征圖進行全局平均池化操作,將空間特征轉換成全局特征,使得網絡能夠處理不同尺寸的輸入。nn.Linear()就是一個線性變換,相當于線性代數中矩陣的乘法。

總:卷積模塊ContextGuidedBlock_Down,更易用于捕獲局部特征、周圍上下文和全局上下文,并將這些信息融合起來以提高準確性。

修改

yaml文件

task.py文件

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/718653.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/718653.shtml
英文地址,請注明出處:http://en.pswp.cn/news/718653.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Hack The Box-Bizness

目錄 信息收集 nmap dirsearch WEB Get shell 提權 get user flag get root flag 信息收集 nmap 端口掃描┌──(root?ru)-[~/kali/hackthebox] └─# nmap -p- 10.10.11.252 --min-rate 10000 -oA port Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-03-04 1…

實測VLLM的加速效果

為了測試vllm的并行加速效果,采用同樣的5個提問,編寫兩個不同的python腳本,分別是compare_vllm.py和compare_chatglm3.py,其中compare_vllm.py采用vllm加速。 服務器參數: 操作系統ubuntu 22.04CPUi7 14700k內存dd5 …

hive中常見參數優化總結

1.with as 的cte優化,一般開發中習慣使用with as方便閱讀,但如果子查詢結果在下游被多次引用,可以使用一定的參數優化手段減少表掃描次數 默認set hive.optimize.cte.materialize.threshold-1;不自動物化到內存,一般可以設置為 se…

力扣 第 387 場周賽 解題報告 | 珂學家 | 離散化樹狀數組 + 模擬場

前言 整體評價 手速場模擬場,思路和解法都蠻直接的。 所以搞點活 如果T2,如果不固定左上角,批量查詢某個點為左上角,求滿足總和 ≤ k \le k ≤k的子矩陣個數 如果T2,如果不固定左上角,求總和 ≤ k \le k…

Spring的Bean的生命周期 | 有圖有案例

Spring的Bean的生命周期 Spring的Bean的生命周期整體過程實例化初始化服務銷毀循環依賴問題 完整生命周期演示 Spring的Bean的生命周期 Spring Bean的生命周期:從Bean的實例化之后,通過反射創建出對象之后,到Bean稱為一個完整的對象&#xf…

EXPLAIN:mysql 執行計劃分析詳解

目錄 EXPLAIN命令 查看執行計劃 分析執行計劃 優化查詢 EXPLAIN中的 type 列類型 在MySQL中,你可以使用EXPLAIN命令來生成查詢的執行計劃。EXPLAIN命令可以顯示MySQL如何使用鍵來處理SELECT和DELETE語句,以及INSERT或UPDATE語句的WHERE子句。這對于…

SRS Stack提供的鑒權、私人直播間、多平臺轉播、錄制等高級功能的具體使用方法是什么?

SRS Stack提供的鑒權、私人直播間、多平臺轉播、錄制等高級功能的具體使用方法是什么? 鑒權功能:SRS Stack支持通過系統配置中的OpenAPI獲取Bearer鑒權,并可以嘗試HTTP API。用戶可以通過點擊網頁上的按鈕請求HTTP API,或者使用cu…

快上車:什么是人工智能?人工智能和普通程序的區別

什么是人工智能? 雖然AI歷史很悠久,上個世紀50年代就有各種概念,但是發展很慢。第一次對人類的沖擊就是1997年IBM深藍擊敗國際象棋世界冠軍,引起了人們的廣泛關注,之后又銷聲匿跡。突然間2016人工智能alphaGO戰勝了圍…

具身智能計算系統,機器人時代的 Android | 新程序員

【導讀】具身智能作為一種新興的研究視角和方法論,正在刷新我們對智能本質及其發展的理解:傳統的 AI 模型往往將智能視為一種獨立于實體存在的抽象能力,而具身智能則主張智能是實體與其環境持續互動的結果。 本文深度剖析了具身智能計算系統…

【CSS】初學了解Grid布局

目錄 什么是Grid布局如何開始使用Grid布局Grid容器的屬性Grid項目的屬性舉個例子 什么是Grid布局 Grid布局是一種二維的布局系統,它允許我們在水平和垂直方向上同時控制網格中的項目位置。通過將頁面劃分為行和列,我們可以輕松地創建出復雜的布局結構&a…

程序員如何選擇職業賽道?

一、自我評估與興趣探索 程序員選擇職業賽道時,可以考慮以下幾個關鍵因素: 1、興趣與熱情:首先要考慮自己的興趣和熱情,選擇符合個人喜好和激情的領域,能夠激勵自己持續學習和進步。 2、技術能力&am…

2.python72變筆記(自用未修改版)

以前寫的python筆記 1.二進制與字符編碼 #8bit(位)1byte(字節) #1024byte 1KB 千字節 #1024KB 1MB 兆字節 #1024MB 1TB 太字節 print(chr(0b100111001010000)) print(ord("陳")) #ord 十進制 #無論英語還是漢語在計算…

mysql5.7配置主從

原理: MySQL主從復制的工作原理如下:1. 主服務器產生Binlog日志當主服務器的數據庫發生數據修改操作時,如INSERT、UPDATE、DELETE語句執行,主服務器會記錄這些操作的日志信息到二進制日志文件中。2. 從服務器讀取Binlog日志 從服務器會向主服務器發送請求,主服務器把…

微信小程序開發學習筆記《18》uni-app框架-網絡請求與輪播圖

微信小程序開發學習筆記《18》uni-app框架-網絡請求 博主正在學習微信小程序開發,希望記錄自己學習過程同時與廣大網友共同學習討論。建議仔細閱讀uni-app對應官方文檔 一、下載網絡請求包 這個包是以前黑馬程序員老師寫的一個包,跟著課程學習&#x…

Open3D(C++) 指定點數的體素濾波

目錄 一、算法原理1、算法過程2、參考文獻二、代碼實現三、結果展示本文由CSDN點云俠原創,原文鏈接。如果你不是在點云俠的博客中看到該文章,那么此處便是不要臉的爬蟲與GPT。 一、算法原理 1、算法過程 對于數據量較大的點云,在后期進行配準時會影響計算效率。而體素格網…

vue3ts websocket通信

前端&#xff1a;vue3ts 后端&#xff1a;springboot npm安裝依賴 cnpm install sockjs-client stompjs 前端代碼 <template><div><el-input v-model"message" type"text" placeholder"發送" /><el-button-group><…

LCR 170. 交易逆序對的總數

解題思路&#xff1a; 歸并排序&#xff0c;在歸并的過程中不斷計算逆序對的個數 count mid -i 1&#xff1b;的來源見下圖&#xff0c;因為兩個數組都是單調遞增的&#xff0c;所以如果第一個數組的前一個元素大于第二個數組的對應元素&#xff0c;那么第一個數組的這一元素…

借助Aspose.SVG圖像控件,在 C# 中將圖像轉換為 Base64

Base64 編碼是一種二進制到文本的編碼方案&#xff0c;可有效地將二進制數據轉換為 ASCII 字符&#xff0c;為數據交換提供通用格式。在某些情況下&#xff0c;我們可能需要將JPG或PNG圖像轉換為 Base64 字符串數據。在這篇博文中&#xff0c;我們將學習如何在 C# 中將圖像轉換…

分享經典、現代和前沿軟件工程課程

隨著信息技術的發展&#xff0c;軟件已經深入到人類社會生產和生活的各個方面。軟件工程是將工程化的方法運用到軟件的開發、運行和維護之中&#xff0c;以達到提高軟件質量&#xff0c;降低開發成本的目的。軟件工程已經成為當今最活躍、最熱門的學科之一。 本次軟件工程MOOC課…

模板06-普通函數與函數模板調用規則

1、如果函數模板和普通函數都可以實現&#xff0c;優先調用普通函數 2、可以通過空模板參數列表來強調調用函數模板 3、函數模板也可以發生重載 4、如果函數模板可以發生更好的匹配&#xff0c;優先調用函數模板 #include <iostream> using namespace std;int my_add …