You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CNN架构神经元总数计算方法问询,附现有PyTorch网络实现代码

核心定义

CNN中的神经元总数为每层输出特征图的总元素数,每个输出位置对应一个神经元:

  • 卷积/池化层:神经元数 = 输出通道数 × 输出特征图高度 × 输出特征图宽度
  • 全连接层:神经元数 = 输出维度

卷积/池化层的输出尺寸通用计算公式:

输出尺寸 = floor( (输入尺寸 + 2×padding值 - kernel尺寸) / stride + 1 )

你的网络逐层计算过程

根据你给出的全连接层输入64 * 1 * 1,可反推匹配的输入图像为单通道32×32(行业常用测试尺寸,推导后刚好匹配输出维度),逐层计算如下:

  • 输入层:1通道32×32,神经元数 = 1×32×32 = 1024(一般统计时可选择是否包含输入层)
  • Conv1层:
    输入32×32,kernel=7×7,padding=1,stride=2
    输出尺寸 = floor( (32 + 2×1 -7)/2 +1 ) = 14
    神经元数 = 16×14×14 = 3136
  • MaxPool1层(stride=2的2D最大池化,默认kernel=2×2):
    输出尺寸 = floor(14/2) =7
    神经元数 = 16×7×7 = 784
  • Conv2层:
    输入7×7,kernel=7×7,padding=1,stride=2
    输出尺寸 = floor( (7 + 2×1 -7)/2 +1 ) = 2
    神经元数 = 32×2×2 = 128
  • MaxPool2层:
    输出尺寸 = floor(2/2) =1
    神经元数 = 32×1×1 = 32
  • Conv3层:
    输入1×1,kernel=3×3,padding=2,stride=2
    输出尺寸 = floor( (1 + 2×2 -3)/2 +1 ) = 2
    神经元数 = 64×2×2 = 256
  • MaxPool3层:
    输出尺寸 = floor(2/2) =1
    神经元数 = 64×1×1 = 64
  • FC1全连接层:
    输出维度=8,神经元数=8

总神经元数统计

根据统计范围不同有两种常见结果:

  1. 仅统计可学习层(卷积层+全连接层,不含输入、池化层):3136 + 128 + 256 + 8 = 3528
  2. 统计所有运算层(含池化层,不含输入层):3136 + 784 + 128 +32 +256 +64 +8 = 4408
  3. 包含输入层的全量统计:4408 + 1024 = 5432

注意事项

如果你的输入图像尺寸、池化核大小和默认配置不同,只需将对应参数代入上述通用公式重新计算即可,逻辑完全一致。


内容的提问来源于stack exchange,提问作者Atila

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 09:45:03