神经网络尺寸和参数量计算

这篇博客主要介绍了神经网络中卷积层的参数计算方法,包括卷积层的参数量计算公式,并探讨了不使用填充时的输出尺寸计算。内容引用自多个资源,旨在帮助读者理解和记忆这些关键计算。

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

前言

这里写个参数计算,会借鉴各路大神的杰作,主要是整理一下怕自己以后忘了找起来麻烦
大部分引自https://blog.csdn.net/qian99/article/details/79008053

参数计算方法

首先是卷积层的计算

下面是一个32x32x3的输入,我们用5x5x3的滤波器去卷积

在这里插入图片描述
所以最后是553=75的一个参数量

在这里插入图片描述那么最后的输出也是需要一个公式的,一般我们如果使用填充将不改变输出尺寸,而只改变滤波器数量。
那么如果不使用填充,则见下面的输出计算

如果上面我用了6个滤波器,那么输出为28x28x6,则参数量为5x5x3x6+6=456

对CNN而言,每个卷积层的参数量计算如下:

在这里插入图片描述

在这里插入图片描述

### 神经网络参数量计算 对于人工神经网络而言,理解其内部结构有助于掌握参数量计算方式。这类模型不仅能够处理数值型数据,还具备处理知识的能力,可以实现思维、学习以及记忆等功能[^1]。 #### 卷积神经网络(CNN) 针对卷积神经网络(CNN),为了精确评估其参数总量,需逐层解析网络架构并汇总各部分贡献: - **卷积层**:这是最核心的部分之一,在这里应用特定尺寸的感受野去扫描图像的不同区域。具体来说,卷积层的参数量可以通过下面这个公式来确定: `参数量 = (核高度 * 核宽度 * 输入通道数 + 偏置) * 输出通道数` 这意味着每一个滤波器都由多个权重组成,并且如果考虑到了偏置项,则还需额外加上一个单位给每个过滤器[^4]。 - 关于批量归一化(Batch Normalization, BN),虽然BN层本身引入了一些可训练参数(如缩放因子γ移位β),但在通常情况下讨论整体参数规模时不将其计入主要组成部分内;而激活函数则一般不涉及任何新的自由度增加[^5]。 值得注意的是,当涉及到实际存储需求时,除了上述理论上的参数数目外,还需要考虑到浮点数表示形式所带来的影响——例如使用单精度浮点数(float32)保存这些系数的话,那么每项都会占据大约四个字节的空间。 最后需要注意的是像最大池化(MaxPooling)这样的操作不会带来新增加的学习单元,因为它们只是单纯地改变了特征图大小而不参与任何形式的学习过程[^3]。 ```python def calculate_conv_layer_params(kernel_height, kernel_width, input_channels, output_channels): """ Calculate the number of parameters in a convolutional layer. Args: kernel_height (int): Height of the filter/kernel. kernel_width (int): Width of the filter/kernel. input_channels (int): Number of channels in the input image or feature map. output_channels (int): Number of filters applied to produce this many output features. Returns: int: Total number of trainable parameters within one conv-layer including biases. """ params_per_filter = kernel_height * kernel_width * input_channels + 1 # Adding bias term per filter total_parameters = params_per_filter * output_channels return total_parameters # Example usage with dummy values print(calculate_conv_layer_params(3, 3, 64, 128)) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值