CNN的各种知识点(一):卷积神经网络CNN通道数的理解!

news/2025/2/6 18:20:49/

卷积神经网络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.ppmy.cn/news/1569866.html

相关文章

HTML基本语法

什么是HTML? HTML是超文本标记语言(HyperText Markup Language)的缩写,是一种用于创建网页的标准标记语言。HTML允许网页设计师通过使用标签来描述网页的结构和内容。 W3C标准 W3C(World Wide Web Consortium)是一…

11.kafka开启jmx

方式一: 1.进入/opt/kafka_2.13-3.3.2/bin目录 命令: cd /opt/kafka_2.13-3.3.2/bin [root@rhel77 ~]# cd /opt/kafka_2.13-3.3.2/bin [root@rhel77 bin]# pwd /opt/kafka_2.13-3.3.2/bin [root@rhel77 bin]# 2.备份kafka-run-class.sh 命令: cp kafka-run-class.sh …

CVPR | CNN融合注意力机制,芜湖起飞!

**标题:**On the Integration of Self-Attention and Convolution **论文链接:**https://arxiv.org/pdf/2111.14556 **代码链接:**https://github.com/LeapLabTHU/ACmix 创新点 1. 揭示卷积和自注意力的内在联系 文章通过重新分解卷积和自…

Linux iostat 命令使用详解

简介 iostat 命令用于监控 Linux 系统输入/输出设备的加载情况。它提供有关CPU 统计信息以及设备和分区的输入/输出统计信息。通过显示 I/O 操作如何影响系统性能,它对于诊断性能瓶颈(例如磁盘或网络活动缓慢)特别有用。 安装 Debian/Ubun…

阿里云 ubuntu22.04 中国区节点安装 Docker

下面是一份在 Ubuntu 22.04 (Jammy) 上,通过阿里云镜像源来安装并配置 Docker 的详细步骤示例,可在中国区阿里云节点使用: 一、卸载旧版本 (如已安装) 如果系统中已经安装了旧版 Docker (可能是 docker、docker-engine、docker.io、containe…

解决open-webui报错Couldn‘t find ffmpeg or avconv

启动open-webui的时候报错Couldnt find ffmpeg or avconv 具体内容: INFO [open_webui.env] Embedding model set: sentence-transformers/all-MiniLM-L6-v2 E:\py311\Lib\site-packages\pydub\utils.py:170: RuntimeWarning: Couldnt find ffmpeg or avconv - d…

1 HBase 基础

1 HBase 基础 1. HBase 基本介绍2. HBase 与 Hadoop 的关系3. RDBMS 与 HBase 的对比4. HBase 特征简要 1. HBase 基本介绍 简介 HBase 是 BigTable 的开源 Java 版本。是建立在 HDFS 之上,提供高可靠性、高性能、列存储、可伸缩、实时读写 NoSql 的数据库系统。 它…

计算机视觉-边缘检测

一、边缘 1.1 边缘的类型 ①实体上的边缘 ②深度上的边缘 ③符号的边缘 ④阴影产生的边缘 不同任务关注的边缘不一样 1.2 提取边缘 突变-求导(求导也是一种卷积) 近似,1(右边的一个值-自己可以用卷积做) 该点f(x,y)…