深度神经网络TensorFlow基础学习(3)——卷积神经网络的参数个数和张量大小

本文介绍了如何计算卷积神经网络(如AlexNet)各层的张量大小和参数数量。通过具体示例,解释了卷积层、池化层和全连接层的张量尺寸计算公式,并详细分析了每层的参数数量。讨论了数据增强在防止过拟合中的作用,并提到了训练神经网络时使用批次和周期的概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天,我们来分享一篇博文,关于如何计算图像张量的大小以及确定卷积神经网络各层参数个数的公式。假设我们已经熟悉了卷积神经网络相关概念。在这里,我们把张量定义为有任意通道数的图像。

张量是在深度学习中表示数据的标准方式。
简单来说,张量是二维表(矩阵)到更高维的扩展。

有效AttributeError: module ‘tensorflow’ has no attribute "…"解决办法
一般,这是由于版本不兼容的问题,中间加上compat.v1

tf.compat.v1.placeholder

我们将用AlexNet作为例子,在这里我们把AlexNet的结构拿来参考。
在这里插入图片描述
在这里,我们先来了解AlexNet的结构

  1. 输入层:彩色图片的大小2272273
  2. 卷积层1:96 kernels 11*11 步长4 零边距填充
  3. 最大池化层1:3*3 步长2 避免平均池化的模糊化效果
  4. 卷积层2:256 kernels 5*5 步长1 填充2
  5. 最大池化层2:3*3 步长2 避免平均池化的模糊化效果
  6. 卷积层3:384 kernels 3*3 步长1 填充1
  7. 卷积层4:384 kernels 3*3 步长1 填充1
  8. 卷积层2:256 kernels 3*3 步长1 填充1
  9. 最大池化层3:3*3 步长2 避免平均池化的模糊化效果
  10. 全连接层1:4096神经元
  11. 全连接层2:4096神经元
  12. 全连接层3:1000神经元
    其中,最大池化是可重叠的,步长小于窗口宽度。分批(Batches) 和 周期(Epochs)在使用训练集训练神经网络的时候,相比于一次将所有的样本全部输入到网络中,一个更好的选择是:先将数据随机地分为几个大小一致的数据块,再分批次输入。跟一次性训练出来的模型相比,分批训练能够使模型的适用性更好。一个Epoch表示,对所有的Batch都进行了一次训练。

AlexNet 的特点如下:

更深的网络结构
使用层叠的卷积层,即卷积层+卷积层+池化层来提取图像的特征
使用Dropout抑制过拟合
使用数据增强Data Augmentation抑制过拟合
使用Relu替换之前的sigmoid的作为激活函数
多GPU训练

其中,数据增强部分,神经网络由于训练的参数多,表能能力强,所以需要比较多的数据量,不然很容易过拟合。当训练数据有限时,可以通过一些变换从已有的训练数据集中生成一些新的数据,以快速地扩充训练数据。对于图像数据集来说,可以对图像进行一些形变操作:翻转/随机裁剪/平移,颜色光照的变换

下面,重点来了:
卷积神经网络的参数个数和张量大小(翻译),每一层具体的练习结果参考上方链接。

确定张量大小

How to calculate the tensor size at each stage
How to calculate the total number of parameters in the network

我们先来明确各变量名称

变量 含义
O 输出图像的大小
I 输入图像的大小
K 卷积层所用卷积核大小
N 卷积核数量
S 步长
P 边界填补

卷积层输出张量大小

O = I − K + 2 P S + 1 O= \frac{I-K+2P}{S}+1 O=SIK+2P+1
输出图像的通道个数等于我们使用的卷积核的个数。
例如:在 AlexNet,输入图像大小为 227 ∗ 227 ∗ 3 227*227*3 2272273,第一个卷积层有96个 11 ∗ 11 ∗ 3 11*11*3 11113卷积核,步长为4,没有边界填充。第一个卷积层输出大小便是
O = 227 − 11 + 2 ∗ 0 4 + 1 = 55 O = \frac{227-11+2*0}{4}+1 = 55 O=422711+20+1=55
输出张量大小为555596
在 LeNet,输入图像大小为32321,第一个卷积层有6个551卷积核,步长为1,边界填充和输入相同。
第一个卷积层输出大小便是?
O = 32 − 5 + 2 ∗ 0 1 + 1 = 28 O = \frac{32-5+2*0}{1}+1 = 28 O=1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

肥鼠路易

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值