深度學習Day-24:ResNeXt-50算法思考

??🍨 本文為:[🔗365天深度學習訓練營] 中的學習記錄博客
?🍖 原作者:[K同學啊 | 接輔導、項目定制]

要求:

  1. 閱讀給出代碼,判斷是否存在錯誤,正確與否都請給出你的思考;
  2. 查找相關資料、逐步推理模型、寫下思考過程
# 定義殘差單元
def block(x, filters, strides=1, groups=32, conv_shortcut=True):if conv_shortcut:
shortcut = Conv2D(filters * 2, kernel_size=(1, 1), strides=strides, padding='same', use_bias=False)(x)
# epsilon為BN公式中防止分母為零的值
shortcut = BatchNormalization(epsilon=1.001e-5)(shortcut)
else:
# identity_shortcut
shortcut = x
# 三層卷積層
x = Conv2D(filters=filters, kernel_size=(1, 1), strides=1, padding='same', use_bias=False)(x)
x = BatchNormalization(epsilon=1.001e-5)(x)
x = ReLU()(x)
# 計算每組的通道數
g_channels = int(filters / groups)
# 進行分組卷積
x = grouped_convolution_block(x, strides, groups, g_channels)x = Conv2D(filters=filters * 2, kernel_size=(1, 1), strides=1, padding='same', use_bias=False)(x)
x = BatchNormalization(epsilon=1.001e-5)(x)
x = Add()([x, shortcut])
x = ReLU()(x)
return x# 堆疊殘差單元
def stack(x, filters, blocks, strides, groups=32):
# 每個stack的第一個block的殘差連接都需要使用1*1卷積升維
x = block(x, filters, strides=strides, groups=groups)
for i in range(blocks):
x = block(x, filters, groups=groups, conv_shortcut=False)
return x

問題:如果conv_shortcut=False,那么執行“x=Add()…”語句時,通道數不一致的,為什么不會報錯?

思考分析

????????在ResNext網絡中,將conv_shortcut參數設置為False,表示使用identity_shortcut而不是Conv2D層作為快捷連接。

????????對于定義殘差單元block模塊,Add()是x和shortcut相加,x通道數是filter*2。對于shortcut,conv_shortcut為True則是filters*2,否則是原始輸入通道數。

????????最后對于堆疊殘差模塊stack,第二次調用block時,conv_shortcut參數是False,使用的是identity_shortcut,這種情況下,快捷連接將直接傳遞輸入x給塊的最后一層。因此,在執行“x=Add()…”語句時,快捷連接的通道數與該層的通道數不一致。

????????但是,由于Add()層在通道數不同時會自動對快捷連接進行零填充,所以不會出現尺寸不匹配的錯誤。此外,這種零填充不會對訓練產生任何影響,因為填充的值不會接收任何梯度更新。

????????總之,Add 層具有自動廣播機制,可以在計算時自動擴展較小張量的形狀以匹配較大張量的形狀,因此即使通道數不一致也不會報錯。

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

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

相關文章

如何減少開發過程中的bug-數據庫篇

1.1慢查詢 1.1.1 是否命中索引 提起慢查詢,我們馬上就會想到加索引。如果一條SQL沒加索引,或者沒有命中索引的話,就會產生慢查詢。 索引哪些情況會失效? 查詢條件包含or,可能導致索引失效 如果字段類型是字符串&am…

LeetCode 0724.尋找數組的中心下標:前綴和(時空復雜度O(n)+O(1))

title: 724.尋找數組的中心下標 date: 2024-07-08 13:22:58 tags: [題解, LeetCode, 簡單, 數組, 前綴和] 【LetMeFly】724.尋找數組的中心下標:前綴和(時空復雜度O(n)O(1)) 力扣題目鏈接:https://leetcode.cn/problems/find-pi…

數據結構--二叉樹相關習題5(判斷二叉樹是否是完全二叉樹 )

1.判斷二叉樹是否是完全二叉樹 辨別: 不能使用遞歸或者算節點個數和高度來判斷。 滿二叉樹可以用高度和節點來判斷,因為是完整的。 但是完全二叉樹前面是滿的,但是最后一層是從左到右連續這種 如果仍然用這種方法的話,如下圖…

暑期備考2024小學生古詩文大會:吃透真題和知識點(持續)

2024年上海市小學生古詩文大會的自由報名初賽將于10月19日(星期六)正式開始,還有3個多月的時間。 為幫助孩子們備考,我持續分享往年上海小學生古詩文大會真題,這些題目來自我去重、合并后的1700在線題庫,每…

加密與安全_密鑰體系的三個核心目標之完整性解決方案

文章目錄 Pre機密性完整性1. 哈希函數(Hash Function)定義特征常見算法應用散列函數常用場景散列函數無法解決的問題 2. 消息認證碼(MAC)概述定義常見算法工作原理如何使用 MACMAC 的問題 不可否認性數字簽名(Digital …

SketchUp Pro 2024:現代科技之詩意體驗

在那遙遠的唐朝,李白曾以詩酒為伴,游歷山川,揮灑才情。而今,若李白穿越時空,手握現代科技之利器——SketchUp Pro 2024,定會以詩意之筆,描繪這款軟件的神奇與魅力。 初識SketchUp Pro 2024 初…

Vue Router:History 模式 vs. Hash 模式

在開發 SPA(單頁應用程序)時,路由管理是不可或缺的一部分。Vue.js 框架中的 Vue Router 提供了兩種主要的路由模式:History 模式和 Hash 模式。理解這兩種模式的區別及其實現方式,對于開發和部署 Vue 應用至關重要。 …

k8s record 20240708

一、PaaS 云平臺 web界面 資源利用查看 Rancher 5臺 CPU 4核 Mem 4g 100g的機器 映射的目錄是指docker重啟后,數據還在 Rancher可以創建集群也可以托管已有集群 先docker 部署 Rancher,然后通過 Rancher 部署 k8s 想使用 kubectl 還要yum install 安…

如何分析前后端bug?

如何分析前后端bug,我來支你1??招 📝一般通過查看接口的方式分析前后端bug。 . 【方法】: web項目,用瀏覽器自帶的F12抓包看接口請求。 app客戶端,一般用fiddler等工具進行抓包接口。 . ?用經典的電商項目舉例&…

應用軟件受到網絡攻擊怎么辦?

大家都知道在目前的互聯網社會中,大型的網絡游戲與電商網站企業是網絡攻擊的重要對象,同時軟件應用也無法避免地會受到各種網絡攻擊,那么當我們的軟件應用被攻擊時,該怎么辦呢? 首先我們可以使用高防CDN,安…

2. 年齡問題

年齡問題 題目描述 本題為填空題,只需要算出結果后,在代碼中使用輸出語句將所填結果輸出即可。 S 夫人一向很神秘。這會兒有人問起她的年齡,她想了想說: "2020 年前,我丈夫的年齡剛好是我的 22 倍,…

ATA-8035射頻功率放大器在聲動力療法中的應用

聲動力療法是一種基于聲波能量的治療方法,廣泛應用于醫療和美容領域。它利用高強度聚焦的聲波來實現切割、破碎或加熱組織,以治療各種疾病和美容問題。在聲動力療法中,射頻功率放大器起著至關重要的作用,它負責提供足夠的能量來激…

達夢數據庫的系統視圖v$auditrecords

達夢數據庫的系統視圖v$auditrecords 在達夢數據庫(DM Database)中,V$AUDITRECORDS 是專門用來存儲和查詢數據庫審計記錄的重要系統視圖。這個視圖提供了對所有審計事件的訪問權限,包括操作類型、操作用戶、時間戳、目標對象等信…

詳解 | 什么是GeoTrust

GeoTrust是一家全球知名的數字證書頒發機構(Certificate Authority,簡稱CA),專注于提供SSL/TLS證書和其他相關的網絡安全產品。 1、歷史背景: GeoTrust成立于2001年,最初作為一個獨立的公司運營。2006年&a…

js+spring boot實現簡單前后端文件下載功能

jsboot項目實現自定義下載 一、前端頁面 1、先導入axios的js包 2、注意axios響應的格式:result.data.真實的數據內容 3、這里請求的url就是你boot項目的getMapping的url,保持一致即可 4、如果想在后端設置文件名,那么后端生成后&#xf…

目標檢測算法介紹來了!

隨著人工智能技術的迅猛發展,目標檢測算法在計算機視覺領域扮演著越來越重要的角色。它廣泛應用于安防監控、自動駕駛、醫學影像分析、機器人視覺等多個領域,極大地推動了智能化進程。本文將對目標檢測算法進行深入的探討,包括其基本原理、發…

使用 Streamlit 和 asyncio 模塊進行異步編程

概述 Streamlit 是一個用于構建數據應用程序的強大工具,但它本身并不直接支持異步編程。然而,通過結合 Python 的 asyncio 模塊,我們可以在 Streamlit 應用中實現異步處理,從而提高應用的響應性和效率。 為什么需要異步編程 在…

安卓應用開發學習:騰訊地圖SDK應用改進,實現定位、搜索、路線規劃功能集成

一、引言 我的上一篇學習日志《安卓應用開發學習:通過騰訊地圖SDK實現定位功能》記錄了利用騰訊地圖SDK實現手機定位功能,并能獲取地圖中心點的經緯度信息。這之后的幾天里,我對《Android App 開發進階與項目實戰》一書第九章的內容深入解讀…

【深度學習實戰(44)】Anchor based and Anchor free(無錨VS有錨)

1 anchor-based 深度學習目標檢測通常都被建模成對一些候選區域進行分類和回歸的問題。在單階段檢測器中,這些候選區域就是通過滑窗方式產生的 anchor;在兩階段檢測器中,候選區域是 RPN 生成的 proposal,但是 RPN 本身仍然是對滑窗…

leetcode--層數最深葉子節點的和

leetcode地址:層數最深葉子節點的和 給你一棵二叉樹的根節點 root ,請你返回 層數最深的葉子節點的和 。 示例 1: 輸入:root [1,2,3,4,5,null,6,7,null,null,null,null,8] 輸出:15 示例 2: 輸入&#xff…