卷积层的参数与FLOPS

卷积层的参数与FLOPS

在卷积层中,卷积核(也称为滤波器)是一个小的、可学习的矩阵,通常比输入图像的尺寸小得多。每个卷积核在输入图像上滑动(即进行卷积运算),在滑动过程中与输入图像的局部区域进行逐元素相乘并累加,生成一个特征图(Feature Map)。

一个卷积核

  • 通常指的是一个完整的卷积核,其包含对所有输入通道的权重矩阵。即一个卷积核在所有输入通道上应用其权重矩阵,生成一个输出通道。

多个卷积核

  • 输出通道数就是卷积核的个数,如果一个卷积层有多个输出通道(例如 out_channels=32),那么有 32 个卷积核,每个卷积核有对所有输入通道的权重矩阵。

对于一个卷积层而言,每个卷积核的权重是共享的,在所有输入通道上应用。

卷积核可以不是2维的:如果输入通道数为 3,卷积核的维度是 (3, K, K),其中 K 是卷积核的空间尺寸(例如 3x3)。

在这里插入图片描述

参数

一个卷积层的参数数量:
参数数量 = ( 输出通道数 × 输入通道数 × 卷积核宽度 × 卷积核高度 ) + 输出通道数的偏置项 参数数量=(输出通道数×输入通道数×卷积核宽度×卷积核高度)+输出通道数的偏置项 参数数量=(输出通道数×输入通道数×卷积核宽度×卷积核高度)+输出通道数的偏置项
输出通道数就是卷积核的个数。 输入通道数 × 卷积核宽度 × 卷积核高度 输入通道数×卷积核宽度×卷积核高度 输入通道数×卷积核宽度×卷积核高度是单个卷积核的参数。

conv_layer = nn.Conv2d(in_channels=3, out_channels=1, kernel_size=3, stride=1, padding=1)
# 28个参数 3x1x3x3+1,这个1是偏置
FLOPs

FLOPs(Floating Point Operations, 浮点运算次数)。在神经网络中,通常指的是batch_size为1时的浮点运算次数

每个输出像素点的 FLOPs 计算公式为:
F L O P s = 2 × ( 输入通道数 × 卷积核宽度 × 卷积核高度 ) FLOPs=2×(输入通道数×卷积核宽度×卷积核高度) FLOPs=2×(输入通道数×卷积核宽度×卷积核高度)
2 × 2× 2×是先乘法运算,再加法运算。

对于卷积层,其 FLOPs 计算公式如下:
F L O P s = 2 × ( 输入通道数 × 卷积核宽度 × 卷积核高度 × 输出特征图宽度 × 输出特征图高度 × 输出通道数 ) FLOPs=2×(输入通道数×卷积核宽度×卷积核高度×输出特征图宽度×输出特征图高度×输出通道数) FLOPs=2×(输入通道数×卷积核宽度×卷积核高度×输出特征图宽度×输出特征图高度×输出通道数)
在这个公式中,输出特征图宽度输出特征图高度直接取决于输入特征图的宽度高度

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值