卷积层计算方法

1. 两个参数

in_channelsout_channels

取决于图片类型:

如果是彩色的RGB类型,通道数为3;

如果是灰度图像,通道数为1。

卷积核的个数

2. 两个重要等式 

卷积核通道数 = 卷积输入层的通道数   (k_channels = in_channels
卷积输出层通道数 = 卷积核的个数   out_channels = k_number)         (注:通道数即深度)

3. 简单的卷积运算(padding=0,stride=1)

  • 取输入矩阵中大小与卷积核相同的矩阵;
  • 进行对应位置相乘,最后相加起来(多通道要相加起来),算出特征矩阵的一个位置的值;
  • 多的卷积核同理相乘相加。
  • (具体实现如下图)

Input [ in_{channels}, in_{height}, in_{width} ]

Kernel [ out_{channels}, in_{channels}, k_{height}, k_{width}]

Output [ out_{channels}, out_{height}, out_{width}]

 4. 输出特征图尺寸计算

(1)根据卷积公式:

O=(n-f+2p)/s+1

nfps
输入特征宽高卷积核宽高填充padding步长stride

则上图输出特征图尺寸为:

out_{height}=(3-2+2*0)/1+1=2

out_{width}=(3-2+2*0)/1+1=2

(2)同理,下面pytorch的卷积:

self.conv1 = nn.Sequential(
            nn.Conv2d(
                in_channels=1,    # 灰度图像
                out_channels=16,  # 卷积核个数
                kernel_size=3,    # 卷积核大小3*3
                stride=1,
                padding=2
            ),
            nn.ReLU(),            # 激活
            nn.MaxPool2d(kernel_size=2) # 池化
        )
  • 假入输入尺寸为 1*64*44根据卷积公式:

O=(n-f+2p)/s+1

nfps
输入特征宽高卷积核宽高填充padding步长stride

out_{height}=(64-3+2*2)/1+1=66

out_{width}=(44-3+2*2)/1+1=46

又:输出层深度 = 卷积核的个数 = 16

故:输出特征图的尺寸为 16*66*46

  • 池化层核大小2*2,默认填充padding为0,默认步长stride=核大小=2,同理:

Oh=(66-2+2*0)/2+1=33

Ow=(46-2+2*0)/2+1=23

池化不改变通道数, 故输出特征图的尺寸为 16*33*23

5. 输出参数的数量计算

paramNums=f*f*in*out

finout
卷积核大小in_channelout_channel

注:(1)bias为True时,要多加一个out

(2)当使用BN时,还有两个可学习的参数α和β,要多加 3*out

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
RNN(循环神经网络)和CNN(卷积神经网络)是深度学习中常用的两种网络结构,它们的计算方式有所不同。 RNN的计算是基于时间序列的,它的每一个时间步都计算一个隐藏状态,并将这个状态传递到下一个时间步。RNN的计算可以通过以下公式表示: $$ h_t = f(W_{hh}h_{t-1} + W_{xh}x_t + b_h) $$ 其中,$h_t$是当前时间步的隐藏状态,$h_{t-1}$是上一个时间步的隐藏状态,$x_t$是当前时间步的输入,$W_{hh}$、$W_{xh}$、$b_h$是模型参,$f$是激活函。 CNN的计算是基于卷积操作的,它通过卷积核对输入的特征图进行卷积运算,得到输出的特征图。CNN的计算可以通过以下公式表示: $$ y_{i,j} = \sum_{m=1}^{M}\sum_{n=1}^{N} x_{i+m-1,j+n-1}w_{m,n} + b $$ 其中,$x$是输入特征图,$w$是卷积核,$b$是偏置,$y$是输出特征图,$i$、$j$分别表示输出特征图的行和列,$M$、$N$分别表示卷积核的行和列。 GN(组归一化)是一种归一化方法,它将一个batch内的样本按照通道分成多个组,对每个组内的样本进行归一化。GN的计算可以通过以下公式表示: $$ y = \gamma \frac{x - \mu}{\sqrt{\sigma^2 + \epsilon}} + \beta $$ 其中,$x$是输入特征图,$\mu$、$\sigma$分别是组内样本的均值和标准差,$\gamma$、$\beta$分别是可学习的缩放因子和偏移量,$\epsilon$是一个小常,防止分母为零。 以上是RNN、CNN和GN的简单介绍和计算公式,希望能对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

~許諾~

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

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

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

打赏作者

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

抵扣说明:

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

余额充值