【CNN】卷積神經網絡- part1

1.卷積

1.局部連接

定義:只是于輸入數據的一部分區域相連,每個神經元只關注一小部分

作用:模仿人類的視野機制,極大的減少了模型參數的數量,降低了計算成本

2.權重共享

定義:所有神經元使用相同的權重向量來檢測輸入數據的不同局部區域。換句話說,卷積核(濾波器)在整個輸入上滑動時,其內部的權重保持不變。

作用:不僅進一步減少了模型參數的數量,提高了計算效率,還賦予了模型平移不變性(translation invariance),意味著無論某個特征出現在圖像的哪個位置,模型都能識別它。這使得CNN非常適合處理具有平移不變性的任務,如圖像分類。

3.池化

定義:減少特征圖的空間尺寸,從而降低計算復雜度并控制過擬合。最常見的形式是最大池化(Max Pooling),它通過取每個固定大小子區域的最大值來縮小特征圖的尺寸。

作用:減少維度外,池化還能提供某種程度的位置不變性,因為它減少了輸出對輸入中小變化的敏感性。

1.1 卷積運算

滑動卷積核,在每個局部區域先乘再和,最終生成特征圖,輸出標量。

代碼實現二維卷積算子

import torch
import torch.nn as nn# 定義輸入矩陣和卷積核
input_matrix = torch.tensor([[1., 2., 3.],[4., 5., 6.],[7., 8., 9.]
], dtype=torch.float32)  kernel = torch.tensor([[0., 1.],[2., 3.]
], dtype=torch.float32)  # 將輸入擴展為四維張量
input_tensor = input_matrix.view(1, 1, 3, 3)  # 創建卷積層(
conv_layer = nn.Conv2d(in_channels=1,out_channels=1,kernel_size=2,bias=False  # 禁用偏置項
)# 手動設置卷積核權重
conv_layer.weight.data = kernel.view(1, 1, 2, 2)# 執行卷積操作
output = conv_layer(input_tensor)# 輸出結果
result = output.squeeze().detach()  print("卷積結果:\n", result)

1.2 權重共享

這個卷積核包含了一組權重,用于從輸入數據中提取特征。通過權值共享,網絡能夠在不同的輸入位置之間共享計算和參數,從而大大減少模型參數的數量,提高網絡的泛化能力。

減少模型的參數數量,降低了過擬合風險,因為使用了相同的權重和偏置,所以實現平移不變性。且更加簡潔

1.3 卷積之步長

  • 假設有一個大小為5×5的輸入圖像(為了簡化問題,不考慮顏色通道等復雜情況),而卷積核的大小是3×3。

  • 如果步長設置為1,那么卷積核就從左上角開始,每次向右移動1個單位,當到達圖像邊緣后,向下移動1個單位,繼續向右掃描。這樣在橫向和縱向都會有很多重疊的計算區域,最終得到的輸出特征圖尺寸較大,會得到一個3×3的矩陣,可以捕捉到更密集的空間細節。

  • 若步長設置為2,則卷積核在每次移動時會跳過1個單位(因為步長是2),這樣輸出特征圖的尺寸就會減小,會得到一個2×2的矩陣,計算量也會相應減少。較大的步長容易導致特征圖中信息的稀疏,但可以有效降低模型的復雜度。

2.4 卷積的Padding邊緣填充

保持輸入和輸出圖像尺寸保持一致性。

?

?卷積之后的特征圖大小可以通過一個具體的公式來計算。假設輸入圖像的尺寸是 W×H(寬度和高度),卷積核的大小是 F×F,步長(stride)為 S,填充(padding)大小為 P,則輸出特征圖的尺寸 W×H 可以通過以下公式計算:

?

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

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

相關文章

漏洞生命周期管理:從發現到防護的全流程方案

漏洞并非孤立存在,而是遵循 “發現→評估→修復→驗證→閉環” 的生命周期。多數企業安全事件的根源并非缺乏漏洞發現能力,而是對漏洞生命周期的管理缺失 —— 大量漏洞被發現后長期未修復,或修復后未驗證效果。構建全流程漏洞生命周期管理體…

opencv圖像基本操作解析與實操

圖片操作cv2.namedWindow() 創建命名窗口cv2.imshow()顯示窗口cv2.destroyAllwindws()摧毀窗口cv2.resizeWindow()改變窗口大小cv2.waitKey()等待用戶輸入cv2.imread()讀取圖像img.shape 圖片h、w、c(高、寬、通道數import cv2 # opencv讀取的格式是BGR import m…

kafka--基礎知識點--6.1--LEO、HW、LW

在 Apache Kafka 中,LEO(Log End Offset)、HW(High Watermark)、和 LW(Low Watermark) 是副本機制和日志管理中的核心概念,共同確保數據一致性、可見性和存儲效率。以下是它們的詳細…

在線深凹槽深檢測方法都有哪些 —— 激光頻率梳 3D 輪廓檢測

引言在制造業中,深凹槽深度的精確檢測是保證零部件質量的關鍵環節。隨著智能制造的推進,在線檢測需求日益迫切,傳統檢測方法在效率和精度上的不足逐漸顯現。本文將梳理在線深凹槽深的傳統檢測方法,并重點探討激光頻率梳 3D 輪廓檢…

NumPy 數組拼接的高級技巧與實踐

在數據處理和機器學習領域,NumPy 是 Python 中最核心的科學計算庫之一。NumPy 數組(ndarray)的拼接操作是數據預處理中極為常見的需求。本文將深入探討如何將不同形狀的 NumPy 數組進行拼接,特別是如何將多個一維數組與二維數組進…

原創-基于 PHP 和 MySQL 的證書管理系統 第三版

第一版屬于開源版本,所以后臺功能沒有開發許多出來,今天分享證書查詢第三版; 通過幾天的緊急寫代碼及測試;第三版基本可以上線上,不過后面有一些BUG只能一邊修復。 演示地址:物星科云證書管理系統 第三版…

爬蟲虛擬環境

conda create --name myrepenv python3.12創建一個名為 myrepenv、Python 版本為 3.12 的全新 Conda 虛擬環境,適合需要隔離依賴或測試不同 Python 版本的項目。我的方式創建(需要指定盤符)conda create --prefixD:\Anaconda3\envs\myrepenv python3.12展示所下的co…

Netty集群方案詳解與實戰(Zookeeper + Redis + RabbitMQ)

一、背景 二、Netty 單體架構的優缺點 優點 缺點 三、Netty 集群架構的優缺點 優點 缺點 四、適用場景對比 五、Netty單體架構代碼實現 六、Netty集群架構方案實現 方案一、Nginx負載均衡實現集群(較為簡單) Nginx配置 前端連接方式 方案二、NacosGateway(結合…

Oracle遷移到高斯,查詢字段默認小寫,解決辦法

一、問題說明 Oracle中,查詢結果字段默認大寫。高斯中,查詢結果字段默認小寫。在Mybatis的xml中,如果查詢語句使用Map接收查詢結果,使用resultType"java.util.HashMap"或resultType"Map"等寫法,返…

Android Jetpack Compose + MVVM 開發流程深度分析

核心組件關系圖 [View] -- 觀察 --> [ViewModel] -- 操作 --> [Repository]| | Compose UI StateFlow/LiveData| | 用戶交互事件 Room/Retrofit| …

Tailwind CSS快速上手 Tailwind CSS的安裝、配置、使用

📚前言 在Web前端開發的歷史長河中,CSS的編寫方式經歷了多次演進,從早期的原生CSS 到 CSS預處理(Less/Sass/Stylus) 到 CSS-in-JS(Styled-Components/Emotion) 再到 Utility-First 原子化CSS。每一種演進方案其本質都是圍繞“開發效率”、“…

單例模式的智慧:從UVM看控制的藝術

有時候,生活中的很多東西其實只需要一個就夠了,就像一個公司只需要一個CEO,一個王朝只需要一個皇帝。在UVM驗證環境中,也有很多這樣的需求——有些對象,我們希望它在整個仿真過程中只存在一個實例。這就是我們今天要聊…

Hexo - 免費搭建個人博客01 - 安裝軟件工具

導言我的博客:https://q164129345.github.io/ Hexo 作為一個 Node.js 框架,它依賴于 Node.js 運行時環境來執行。 一、安裝Node.js官方網址:https://nodejs.org/zh-cn追求系統穩定性、可靠性以及希望減少維護頻率的用戶來說,LTS版…

【Kubernetes】集群啟動nginx,觀察端口映射,work節點使用kubectl配置

參考b站叩丁狼總結:完整版Kubernetes(K8S)全套入門微服務實戰項目,帶你一站式深入掌握K8S核心能力 在master節點執行 kubectl create deployment nginx --imagenginxkubectl expose deployment nginx --port80 --typeNodePort1. …

20250704-基于強化學習在云計算環境中的虛擬機資源調度研究

基于強化學習在云計算環境中的虛擬機資源調度研究 隨著云計算規模的持續擴大,數據中心虛擬機資源調度面臨動態負載、異構資源適配及多目標優化等挑戰。傳統啟發式算法在復雜場景下易陷入局部最優,而深度強化學習(DRL)憑借序貫決策…

day 33打卡

day 21 常見的降維算法 # 先運行之前預處理好的代碼 import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns import warnings warnings.filterwarnings(ignore)# 設置中文字體 plt.rcParams[font.sans-serif] [SimHei] plt.rcParam…

sec(x)積分推導

在MATLAB中繪制 sec?(x)、cos(x) 和 ln?∣sec?(x)tan?(x)∣的函數圖像,需要特別注意 sec?(x) 在 cos?(x)0(即 xπ/2kπ)處的奇點。(deepseek生成代碼)% 定義x范圍(-2π到2π),…

gpt面試題

vue面試題 💡 一、響應式系統相關 ?1. Vue 3 的響應式系統是如何實現的?和 Vue 2 有何本質區別? 答案: Vue 3 使用 Proxy 實現響應式(位于 vue/reactivity 模塊),替代 Vue 2 的 Object.defineP…

【基于OpenCV的圖像處理】圖像預處理之圖像色彩空間轉換以及圖像灰度化處理

目錄 零、寫在前面的話 一、圖像色彩空間轉換 1.1 RGB顏色空間 1.1.1 RGB顏色空間概念 1.1.2 RGB顏色模型?編輯 1.1.3 關于顏色加法 1.1.4 顏色加權加法 1.2 HSV顏色空間 1.2.1 HSV顏色空間概念 1.2.2 HSV顏色模型 1.2.3 應用意義 1.3 顏色轉換 1.3.1 轉換方法 …

Java TCP 通信詳解:從基礎到實戰,徹底掌握面向連接的網絡編程

作為一名 Java 開發工程師,你一定在實際開發中遇到過需要建立穩定連接、可靠傳輸、有序通信等場景。這時,TCP(Transmission Control Protocol) 通信就成為你必須掌握的重要技能之一。TCP 是一種面向連接、可靠、基于字節流的傳輸協…