人工智能神经网络

举报
人工智能-张晨光 发表于 2026/06/23 22:43:23 2026/06/23
【摘要】 一、深度学习行业标准:只有带可学习参数的层才算 “网络层”能更新权重、参与反向传播优化的才算层:卷积层 Conv2d:有卷积核权重、偏置 → 算层全连接 Linear:有权重矩阵、偏置 → 算层BatchNorm、ConvTranspose 等带参数层 → 算层无参数,只做固定数学运算,不算独立网络层MaxPool2d(最大池化)、AvgPool:窗口大小 / 步长写死,全程不训练、无参数R...

一、深度学习行业标准:只有带可学习参数的层才算 “网络层”


能更新权重、参与反向传播优化的才算层:

  1. 卷积层 Conv2d:有卷积核权重、偏置 → 算层
  2. 全连接 Linear:有权重矩阵、偏置 → 算层
  3. BatchNorm、ConvTranspose 等带参数层 → 算层

无参数,只做固定数学运算,不算独立网络层


  • MaxPool2d(最大池化)、AvgPool:窗口大小 / 步长写死,全程不训练、无参数
  • ReLU、Sigmoid、Tanh 激活函数:纯数学映射,无参数
  • view、permute、flatten 维度变换:只是张量重塑

你的代码里:self.pool = nn.MaxPool2d(2,2) 只是一个固定运算模块,行业计数层数时直接忽略。

你的模型带参层一共 4 个:conv1、conv2、fc 第一层 Linear、fc 第二层 Linear。

二、新手容易混淆的第二种:按「运算步骤」数操作(不专业)


如果不管有没有参数,只看代码里执行了多少个模块运算:

  1. conv1 卷积
  2. relu1 激活
  3. pool1 池化
  4. conv2 卷积
  5. relu2 激活
  6. pool2 池化
  7. fc1 全连接
  8. relu3 激活
  9. fc2 输出

这里池化只是其中一步操作,就算这么数也凑不出 5 层。

三、补充:为什么大家常说的 5 层 CNN 不含池化


经典 5 层 CNN(比如简化版 VGG、老式手写数字 5 层卷积网络)定义:

5 个卷积层(全部带训练参数),后面搭配池化、全连接;

池化只是卷积之间的下采样工具,不会计入那 “5 层”。

四、举个直观对比你的网络流程

输入(3,64,64)
→ conv1【算1层】 → ReLU(不算) → MaxPool(不算)
→ conv2【算2层】 → ReLU(不算) → MaxPool(不算)
→ flatten展平
→ Linear1【算3层】 → ReLU(不算)
→ Linear2【算4层输出】
池化全程只是中间压缩尺寸的工具,不计入网络层数。

简单总结

  1. 池化层代码确实存在,会执行下采样操作;
  2. 但它无训练参数,专业统计网络层数时不算一层;
  3. 你这个模型不存在 5 层结构,只有 2 卷积 + 2 全连接共 4 个有效训练层。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。