DAY09:【pytorch】nn網絡層

1、卷積層

1.1 Convolution

1.1.1 卷積操作

  • 卷積運算:卷積核在輸入信號(圖像)上滑動,相應位置上進行乘加
  • 卷積核:又稱為濾波器、過濾器,可認為是某種模式、某種特征

1.1.2 卷積維度

一般情況下,卷積核在幾個維度上滑動就是幾維卷積

  • 一維卷積
    在這里插入圖片描述
  • 二維卷積
    在這里插入圖片描述
  • 三維卷積
    在這里插入圖片描述

1.2 nn.Conv2d

在這里插入圖片描述

# nn.Conv2d(
#     in_channels,
#     out_channels,
#     kernel_size,
#     stride=1,
#     padding=0,
#     dilation=1,
#     groups=1,
#     bias=True,
#     padding_mode='zeros'
# )

1.2.1 基本介紹

功能:對多個二維信號進行二維卷積
主要參數:

  • in_channels:輸入通道數
  • out_channels:輸出通道數,等價于卷積核個數
  • kernel_size:卷積核尺寸
  • stride:步長
  • padding:填充個數
  • dilation:空洞卷積大小
  • groups:分組卷積設置,默認為1,即不分組
  • bias:是否使用偏置

尺寸計算:
H o u t = ? H i n + 2 × p a d d i n g [ 0 ] ? d i l a t i o n [ 0 ] × ( k e r n e l _ s i z e [ 0 ] ? 1 ) ? 1 s t r i d e [ 0 ] + 1 ? H_{out} = \lfloor \frac{H_{in} + 2 \times padding[0] - dilation[0] \times (kernel\_size[0] - 1) - 1}{stride[0]} + 1 \rfloor Hout?=?stride[0]Hin?+2×padding[0]?dilation[0]×(kernel_size[0]?1)?1?+1?

1.2.2 代碼框架

    conv_layer = nn.Conv2d(3, 1, 3)   # input:(i, o, size) weights:(o, i , h, w)nn.init.xavier_normal_(conv_layer.weight.data)img_conv = conv_layer(img_tensor)

1.3 nn.ConvTranspose

# nn.ConvTranspose(
#     in_channels,
#     out_channels,
#     kernel_size,
#     stride=1,
#     padding=0,
#     output_padding=0,
#     groups=1,
#     bias=True,
#     dilation=1,
#     padding_mode='zeros'
# )

1.3.1 基本介紹

功能:用于對圖像進行上采樣

對比:

  1. 正常卷積:假設圖像尺寸為4×4,卷積核為3×3,padding=0,stride=1,
    則圖像: I 16 ? 1 I_{16*1} I16?1?,卷積核: K 4 ? 16 K_{4*16} K4?16?,輸出: O 4 ? 1 = K 4 ? 16 × I 16 ? 1 O_{4*1}=K_{4*16}×I_{16*1} O4?1?=K4?16?×I16?1?
  2. 轉置卷積:假設圖像尺寸為2×2,卷積核為3×3,padding=0,stride=1,
    則圖像: I 4 ? 1 I_{4*1} I4?1?,卷積核: K 16 ? 4 K_{16*4} K16?4?,輸出: O 16 ? 1 = K 16 ? 4 × I 4 ? 1 O_{16*1}=K_{16*4}×I_{4*1} O16?1?=K16?4?×I4?1?

主要參數:

  • in_channels:輸入通道數
  • out_channels:輸出通道數
  • kernel_size:卷積核大小
  • stride:步長
  • padding:填充
  • dilation:空洞卷積大小
  • groups:分組卷積
  • bias:是否使用偏置

尺寸計算: H o u t = ( H i n ? 1 ) × s t r i d e [ 0 ] ? 2 × p a d d i n g [ 0 ] + d i l a t i o n [ 0 ] × ( k e r n e l _ s i z e [ 0 ] ? 1 ) + o u t p u t _ p a d d i n g [ 0 ] + 1 H_{out} = (H_{in} - 1) \times stride[0] - 2 \times padding[0] + dilation[0] \times (kernel\_size[0] - 1) + output\_padding[0] + 1 Hout?=(Hin??1)×stride[0]?2×padding[0]+dilation[0]×(kernel_size[0]?1)+output_padding[0]+1

1.3.2 代碼框架

	conv_layer = nn.ConvTranspose2d(3, 1, 3, stride=2)   # input:(i, o, size)nn.init.xavier_normal_(conv_layer.weight.data)img_conv = conv_layer(img_tensor)

2、池化層

2.1 概念

在這里插入圖片描述

對信息進行收集并總結,類似水池收集水資源,因而得名池化層

  • 收集:多變少
  • 總結:最大值/平均值

2.2 nn.MaxPool2d

# nn.MaxPool2d(
#     kernel_size,
#     stride=None,
#     padding=0,
#     dilation=1,
#     return_indices=False,
#     ceil_mode=False,
# )

2.2.1 基本介紹

功能:對二維信號(圖像)進行最大值池化
主要參數:

  • kernel_size:池化核大小
  • stride:步長
  • padding:填充
  • dilation:池化核間隔大小
  • return_indices:是否返回最大值索引
  • ceil_mode:是否向上取整

2.2.2 代碼框架

  • MaxPool2d
	maxpool_layer = nn.MaxPool2d((2, 2), stride=(2, 2))   # input:(i, o, size) weights:(o, i , h, w)img_pool = maxpool_layer(img_tensor)
  • MaxPool2d unpool
    # poolingimg_tensor = torch.randint(high=5, size=(1, 1, 4, 4), dtype=torch.float)maxpool_layer = nn.MaxPool2d((2, 2), stride=(2, 2), return_indices=True)img_pool, indices = maxpool_layer(img_tensor)# unpoolingimg_reconstruct = torch.randn_like(img_pool, dtype=torch.float)maxunpool_layer = nn.MaxUnpool2d((2, 2), stride=(2, 2))img_unpool = maxunpool_layer(img_reconstruct, indices)

2.3 nn.AvgPool2d

# nn.AvgPool2d(
#     kernel_size,
#     stride=None,
#     padding=0,
#     ceil_mode=False,
#     count_include_pad=True,
#     divisor_override=None
# )

2.3.1 基本介紹

功能:對二維信號(圖像)進行平均值池化
主要參數:

  • kernel_size:池化核大小
  • stride:步長
  • padding:填充
  • ceil_mode:是否向上取整
  • count_include_pad:是否包含填充的像素
  • divisor_override:除數重寫

2.3.2 代碼框架

  • AvgPool2d
	avgpoollayer = nn.AvgPool2d((2, 2), stride=(2, 2))   # input:(i, o, size) weights:(o, i , h, w)img_pool = avgpoollayer(img_tensor)
  • AvgPool2d divisor_override
	img_tensor = torch.ones((1, 1, 4, 4))avgpool_layer = nn.AvgPool2d((2, 2), stride=(2, 2), divisor_override=3)img_pool = avgpool_layer(img_tensor)

3、線性層

3.1 概念

在這里插入圖片描述

又稱全連接層,其每個神經元與上一層所有神經元相連實現對前一層的線性組合、線性變換

3.2 nn.Linear

# nn.Linear(
#     in_features,
#     out_features,
#     bias=True
# )

3.2.1 基本介紹

功能:對一維信號(向量)進行線性組合

主要參數:

  • in_features:輸入結點數
  • out_features:輸出結點數
  • bias:是否使用偏置

計算公式: y = x W T + b i a s y = xW^T + bias y=xWT+bias

3.2.2 代碼框架

	inputs = torch.tensor([[1., 2, 3]])linear_layer = nn.Linear(3, 4)linear_layer.weight.data = torch.tensor([[1., 1., 1.],[2., 2., 2.],[3., 3., 3.],[4., 4., 4.]])linear_layer.bias.data.fill_(0.5)output = linear_layer(inputs)

4、激活函數層

4.1 nn.Sigmoid

在這里插入圖片描述

計算公式: y = 1 1 + e ? x y = \frac{1}{1 + e^{-x}} y=1+e?x1?

梯度公式: y ‘ = y × ( 1 ? y ) y^{`} = y \times (1 - y) y=y×(1?y)

特性:

  • 輸出值在(0, 1),符合概率
  • 導數范圍是[0, 0.25],易導致梯度消失
  • 輸出為非0,破壞數據分布

4.2 nn.tanh

在這里插入圖片描述
計算公式: y = s i n x c o s x = e x ? e ? x e ? + e ? x = 2 1 + e ? 2 x + 1 y = \frac{sinx}{cosx} = \frac{e^x - e^{-x}}{e^{-} + e^{-x}} = \frac{2}{1 + e^{-2x}} + 1 y=cosxsinx?=e?+e?xex?e?x?=1+e?2x2?+1

梯度公式: y ‘ = 1 ? y 2 y^{`} = 1 - y^2 y=1?y2

特性:

  • 輸出值在(-1, 1),數據符合0均值
  • 導數范圍是(0, 1),易導致梯度消失

4.3 nn.ReLU

在這里插入圖片描述
計算公式: y = m a x ( 0 , x ) y = max(0, x) y=max(0,x)

梯度公式:
y ′ = { 1 , x > 0 undefined , x = 0 0 , x < 0 y' = \begin{cases} 1, & x > 0 \\ \text{undefined}, & x = 0 \\ 0, & x < 0 \end{cases} y=? ? ??1,undefined,0,?x>0x=0x<0?

特性:

  • 輸出值均為正數,負半軸導致死神經元
  • 導數是1,緩解梯度消失,但易引發梯度爆炸

在這里插入圖片描述

4.3.1 nn.LeakuReLU

  • negative_slope: 負斜率的值,默認為0.01,即負斜率

4.3.2 nn.PReLU

  • init:可學習斜率

4.3.3 nn.RReLU

  • lower:均勻分布下限
  • upper:均勻分布上限

微語錄:黑暗中有人擎花而來,驚動火焰,燃燒萬千蝴蝶迷了眼。

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

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

相關文章

Pinpoint - 大型分布式系統的 APM(應用性能管理)工具

文章目錄 一、關于 Pinpoint最新版本&#xff08;2024/10/23&#xff09;-- v3.0.1PHP, PYTHON 二、概述支持的模塊 一、關于 Pinpoint Pinpoint 是一個用于大型分布式系統的 APM&#xff08;應用性能管理&#xff09;工具&#xff0c;由 Java / PHP/PYTHON 編寫。 受 Dapper …

設計模式實踐:模板方法、觀察者與策略模式詳解

目錄 1 模板方法1.1 模板方法基本概念1.2 實驗1.2.1 未使用模板方法實現代碼1.2.2 使用模板方法的代碼 2 觀察者模式2.1 觀察者模式基本概念2.2 實驗 3 策略模式3.1 策略模式基本概念3.2 實驗 1 模板方法 1.1 模板方法基本概念 定義&#xff1a;一個操作中的算法的骨架 &…

Vue 2.0和3.0筆記

Vue 3 關于組件 今天回顧了下2.0關于組件的內容&#xff0c;3.0定義組件的方式多了一種就是通過單文件組件&#xff08;Single-File Component&#xff09;的方式將Vue的模板&#xff0c;邏輯和樣式放到一個文件中&#xff0c;2.0則不同&#xff0c;它是將模板放到一個屬性中…

前端面試-微前端

1. 什么是微前端&#xff1f;它的核心價值是什么&#xff1f; 答案&#xff1a; 微前端是一種將前端應用拆分為獨立模塊的架構模式&#xff0c;每個模塊可由不同團隊獨立開發、測試、部署和運行。其核心價值包括&#xff1a; 技術棧無關性&#xff1a;支持 React、Vue、Angul…

Axure高保真AI算法訓練平臺

點擊下載《Axure高保真AI算法訓練平臺(.rp) 》 原型效果&#xff1a;https://axhub.im/ax9/69fdf8f2b10b59c3/#g1 摘要 本文介紹了一款功能全面且高效的AI算法訓練平臺&#xff0c;旨在為數據科學家、研究人員和工程師提供從數據準備到模型部署的一站式解決方案。該平臺由四大…

Ubuntu服務器日志滿audit:backlog limit exceeded了會報錯解決方案-Linux 審計系統 (auditd) 工具

auditd 是 Linux 系統中的審計守護進程&#xff0c;負責收集、記錄和監控系統安全相關事件。以下是相關工具及其功能&#xff1a; 核心組件 auditd - 審計守護進程 系統的審計服務主程序 收集系統調用信息并寫入日志文件 通常存儲在 /var/log/audit/audit.log auditctl - 審計控…

Windows10系統RabbitMQ無法訪問Web端界面

項目場景&#xff1a; 提示&#xff1a;這里簡述項目相關背景&#xff1a; 項目場景&#xff1a; 在一個基于 .NET 的分布式項目中&#xff0c;團隊使用 RabbitMQ 作為消息隊列中間件&#xff0c;負責模塊間的異步通信。開發環境為 Windows 10 系統&#xff0c;開發人員按照官…

Qt 的 事件隊列

Qt 的 事件隊列 是其核心事件處理機制之一&#xff0c;用于管理和分發系統與用戶生成的事件&#xff08;如鼠標點擊、鍵盤輸入、定時器、信號槽中的隊列連接等&#xff09;。理解 Qt 的事件隊列對多線程、界面響應以及異步處理尤為關鍵。 一、Qt 的事件處理模型概覽 Qt 是基于…

無人機自主導航與路徑規劃技術要點!

一、自主導航與路徑規劃技術要點 1. 傳感器融合 GPS/北斗定位&#xff1a;提供全局定位&#xff0c;但在室內或遮擋環境下易失效。 慣性測量單元&#xff08;IMU&#xff09;**&#xff1a;通過加速度計和陀螺儀實時追蹤姿態&#xff0c;彌補GPS信號丟失時的定位空缺。 …

Before After:SQL整容級優化

首先說明這個優化有一定提升&#xff0c;但不是我所期望的 我接到一個涉及優化的SQL&#xff0c;具體內容實在太長。而且可能也不利于閱讀。于是我脫敏以及簡化一下。SQL中間大量的充斥著 (select 列名1 from t1 where t1.id t2.id ) A, (select 列名2 from t1 where t1.id …

道可云人工智能每日資訊|首屆世界人工智能電影節在法國尼斯舉行

道可云元宇宙每日簡報&#xff08;2025年4月15日&#xff09;訊&#xff0c;今日元宇宙新鮮事有&#xff1a; 杭州《西湖區打造元宇宙產業高地的扶持意見》發布 杭州西湖區人民政府印發《西湖區打造元宇宙產業高地的扶持意見》。該意見已于4月4日正式施行&#xff0c;有效期至…

JVM 為什么需要即時編譯器?

JVM之所以需要即時編譯器 (JIT Compiler)&#xff0c;是為了提高 Java 程序的執行性能&#xff0c;彌補純解釋器執行的不足。 我們可以從以下幾個角度來分析一下這個問題&#xff1a; 1. 解釋器的性能瓶頸: 逐條解釋的開銷: 解釋器需要逐條讀取 Java 字節碼指令&#xff0c;并…

PromptUp 網站介紹:AI助力,輕松創作

1. 網站定位與核心功能 promptup.net 可能是一個面向 創作者、設計師、營銷人員及藝術愛好者 的AI輔助創作平臺,主打 零門檻、智能化的內容生成與優化。其核心功能可能包括: AI藝術創作:通過輸入關鍵詞、選擇主題或拖放模板,快速生成風格多樣的數字藝術作品(如插畫、海報…

ThingsBoard3.9.1 MQTT Topic(1)

1.網關轉發子設備的遙測信息, Topic:v1/gateway/telemetry { "m1": [{ "mode": "CW", "temperature": 23 }], "m2": [{ "mode": "CW", "temperature": 23 }] } 說明&#xff1a;json格式&a…

React 入門教程:構建第一個 React 應用

本教程將帶你從零開始構建你的第一個 React 應用。我們將創建一個簡單的計數器應用&#xff0c;涵蓋 React 的基本概念和開發流程。 準備工作 在開始之前&#xff0c;請確保你的開發環境滿足以下要求&#xff1a; Node.js (建議使用最新的 LTS 版本) npm 或 yarn (Node.js 安…

vue3中,element-plus中el-input的v-model和value的用法示例

el-input的v-model&#xff0c;邦定響應式變量 <el-col :span"6"><el-form-item label"檢驗類別" prop"verifyType"><el-input v-model"applyAllInfo.applyBasicInfo.verifyTypeName" readonly /></el-form-item…

策略模式隨筆~

若感行文枯燥&#xff0c;請移步至文末Gitee地址中查看源碼自行測試感受策略模式之魅力。 一、策略模式的核心概念 策略模式的定義 定義算法族&#xff0c;封裝每個算法&#xff0c;使其可互換。 核心三要素 Context&#xff1a;上下文&#xff0c;負責接收客戶端請求并委托…

Linux的目錄結構(介紹,具體目錄結構)

目錄 介紹 具體目錄結構 簡潔的目錄解釋 詳細的目錄解釋 介紹 Linux的文件系統是采用級層式的樹狀目錄結構&#xff0c;在此結構的最上層是根目錄“/”。Linux的世界中&#xff0c;一切皆文件&#xff08;比如&#xff1a;Linux會把硬件映射成文件來管理&#xff09; 具體目…

AWS CloudFront加速S3配置跨域

1、點擊分配 源我們就選擇S3–>選擇我們要加速的S3存儲桶 2、創建OAC訪問方式 在我們的來源訪問處–>來源訪問控制設置(推薦)–>選擇創建新的OAC(Create new OAC)–>自定義名字按默認選項保存–>選擇剛剛新創建的OAC 3、選擇查看器的配置 根據具體情況&#x…

進程控制(上)【Linux操作系統】

進程控制 寫時拷貝 本質是一種減少深拷貝的方法 Linux中有很多拷貝的場景都用得上寫時拷貝&#xff0c;下面以創建子進程時的寫時拷貝為例&#xff1a; 子進程被創建的時候&#xff1a; 會繼承父進程的mm_struct和頁表 所以子進程剛剛繼承時&#xff0c;父子進程的代碼和數據…