零碎的知识点(十二):卷积神经网络CNN通道数的理解!

news/2025/1/31 9:26:13 标签: cnn, 深度学习, 神经网络

卷积神经网络CNN通道数的理解!

      • 通道数的核心概念解析
        • 1. 通道数的本质
      • 2. 单张灰度图的处理
        • 示例:
      • 3. 批量输入的处理
        • 通道与批次的关系:
      • 4. RGB三通道输入的处理
        • 计算过程:
        • 示例:
      • 5. 通道数的实际意义
      • 6. 可视化理解
        • (1) 单通道输入(灰度图)的过滤器
        • (2) 三通道输入(RGB)的过滤器
      • 总结

通道数的核心概念解析

1. 通道数的本质

在卷积神经网络中,通道数(Channels)表示不同过滤器的数量。每个通道对应一个独立的过滤器(Filter/Kernel),用于从输入中提取特定类型的特征(如边缘、纹理、颜色分布等)。以下分情况详细说明:


2. 单张灰度图的处理

假设输入是一张灰度图(1个通道),经过第一层卷积操作:

nn.Conv2d(1, 64, kernel_size=3)  # 输入通道1,输出通道64
  • 输入形状(1, H, W) → 单样本(无批次维度)、1通道、高度H、宽度W。
  • 输出形状(64, H_out, W_out)64个通道,每个通道是一个过滤器提取的特征图。
  • 参数数量:每个过滤器有 3x3=9 个参数,共 64个过滤器 → 总参数 64x1x3x3 = 576
示例:
  • 输入:单张 28x28 的灰度图(形状 (1, 28, 28))。
  • 输出(64, 26, 26)(假设无填充,步幅1)。

3. 批量输入的处理

当输入是一个批次(Batch)的多个样本时:

  • 输入形状(B, 1, H, W) → 批次大小B,1通道,高度H,宽度W。
  • 输出形状(B, 64, H_out, W_out)每个样本独立生成64个通道
  • 关键点
    每个样本在批次中独立计算,输出通道数与批次大小无关。
    例如:
    • 输入 10 张灰度图(形状 (10, 1, 28, 28)),
    • 输出 (10, 64, 26, 26) → 每张图对应 64 个通道。
通道与批次的关系:
  • 通道是特征维度:每个通道表示一种特征提取结果。
  • 批次是样本维度:每个样本独立处理,互不影响。

4. RGB三通道输入的处理

如果输入是RGB图像(3个通道),需调整输入通道数:

nn.Conv2d(3, 64, kernel_size=3)  # 输入通道3,输出通道64
  • 输入形状(B, 3, H, W) → 批次大小B,3通道(R、G、B)。
  • 输出形状(B, 64, H_out, W_out) → 输出仍为64个通道。
  • 参数数量:每个过滤器有 3个3x3卷积核(对应3个输入通道),共 64个过滤器 → 总参数 64x3x3x3 = 1728
计算过程:
  1. 多通道卷积:每个过滤器的3个卷积核分别与输入图像的R、G、B通道进行卷积。
  2. 结果相加:将三个通道的卷积结果相加,得到一个输出通道的特征图。
  3. 重复64次:使用64个不同的过滤器,生成64个输出通道。
示例:
  • 输入:单张RGB图像(形状 (3, 224, 224))。
  • 输出(64, 222, 222)(假设无填充,步幅1)。

5. 通道数的实际意义

  • 特征提取的多样性
    每个通道对应一个特定的特征检测器。例如:
    • 某些通道检测水平边缘,
    • 某些通道检测垂直边缘,
    • 某些通道检测圆形纹理。
  • 深层网络的组合
    随着网络加深,高层通道可能组合低层特征,检测更复杂的模式(如物体部件)。

6. 可视化理解

(1) 单通道输入(灰度图)的过滤器
输入通道(1)过滤器1(3x3)过滤器2(3x3)过滤器64(3x3)
灰度图像特征图1特征图2特征图64
(2) 三通道输入(RGB)的过滤器
输入通道(R、G、B)过滤器1(3x3x3)过滤器2(3x3x3)过滤器64(3x3x3)
R通道卷积结果特征图1-R特征图2-R特征图64-R
G通道卷积结果特征图1-G特征图2-G特征图64-G
B通道卷积结果特征图1-B特征图2-B特征图64-B
相加结果特征图1特征图2特征图64

总结

  • 通道数的决定因素:由卷积层的 out_channels 参数定义(如64),与输入批次大小无关。
  • 输入多通道(如RGB)的处理:每个过滤器为多通道卷积核,输出仍为定义的通道路数。
  • 批次维度与通道维度的独立性:每个样本独立生成自己的特征图,通道是特征空间的维度。

http://www.niftyadmin.cn/n/5838549.html

相关文章

【视频+图文详解】HTML基础4-html标签的基本使用

图文教程 html标签的基本使用 无序列表 作用&#xff1a;定义一个没有顺序的列表结构 由两个标签组成&#xff1a;<ul>以及<li>&#xff08;两个标签都属于容器级标签&#xff0c;其中ul只能嵌套li标签&#xff0c;但li标签能嵌套任何标签&#xff0c;甚至ul标…

哈希表实现

目录 1. 哈希概念 1.1 直接定址法 1.2 哈希冲突 1.3 负载因子 1.4 将关键字转为整型 1.5 哈希函数 1.5.1 除法散列法/除留余数法 1.5.2 乘法散列法 1.5.3 全域散列法 1.5.4 其他方法 1.6 处理哈希冲突 1.6.1 开放定址法 1.6.1.1 线性探测 1.6.1.2 二次探测 1.6.…

STM32 PWM驱动舵机

接线图&#xff1a; 这里将信号线连接到了开发板的PA1上 代码配置&#xff1a; 这里的PWM配置与呼吸灯一样&#xff0c;呼吸灯连接的是PA0引脚&#xff0c;输出比较单元用的是OC1通道&#xff0c;这里只需改为OC2通道即可。 完整代码&#xff1a; #include "servo.h&quo…

Java教程练习:学生信息管理系统

文章目录 学生管理系统1、需求文档需求分析 2、新建学生实体类3、实现基本菜单和退出功能4、查询和添加4.1 查询学生信息4.2 添加学生信息 5、修改和删除5.1 删除功能实现5.2 修改功能实现 完整代码下载 学生管理系统 1、需求文档 需求 采取控制台的方式书写学生管理系统。 …

搜索与图论复习1

1深度优先遍历DFS 2宽度优先遍历BFS 3树与图的存储 4树与图的深度优先遍历 5树与图的宽度优先遍历 6拓扑排序 1DFS&#xff1a; #include<bits/stdc.h> using namespace std; const int N10; int n; int path[N]; bool st[N]; void dfs(int u){if(nu){for(int i0;…

从零搭建一个Vue3 + Typescript的脚手架——day3

3.项目拓展配置 (1).配置Pinia Pinia简介 Pinia 是 Vue.js 3 的状态管理库&#xff0c;它是一个轻量级、灵活、易于使用的状态管理库。Pinia 是 Vue.js 3 的官方状态管理库&#xff0c;它可以帮助开发者更好地管理应用的状态。Pinia 是一个开源项目&#xff0c;它有丰富的文档…

vscode和pycharm的区别

VSCode&#xff08;Visual Studio Code&#xff09;和 PyCharm 是两款常用的 Python 开发工具&#xff0c;它们在功能和使用体验上有一些关键区别&#xff1a; 1. 核心定位 VSCode&#xff1a;轻量级、多语言支持的代码编辑器&#xff0c;依靠插件扩展 Python 开发能力。PyCh…

Cesium ArcGisMapServerImageryProvider API 介绍

作为一名GIS研究生&#xff0c;WebGIS 技术无疑是我们必学的核心之一。说到WebGIS&#xff0c;要提的就是 Cesium —— 这个让3D地球可视化变得简单又强大的工具。为了帮助大家更好地理解和使用 Cesium&#xff0c;我决定把我自己在学习 Cesium 文档过程中的一些心得和收获分享…