卷积 池化

卷积 池化

卷积 池化 公式推导

一般情况下, 输入的图片矩阵以及后面的卷积核, 特征图矩阵都是方阵, 这里设输入矩阵大小为 w, 卷积核大小为 k, 步幅为 s, 补零层数为 p, 则卷积后产生的特征图大小计算公式为:

卷积 池化 在pytorch中的用法

import torch
import torch.nn as nn
import numpy as np

x = torch.Tensor([1,10,100,1000,10000,100000]).view(1,2,-1,1,1)
# view()函数用来reshape,-1参数意为自动设置,此处计算得6
# Conv2d的规定输入数据格式为(batch, channel, Height, Width)
# Conv3d的规定输入数据格式为(batch, channel, Depth, Height, Width)

conv = nn.Conv3d(in_channels=2,
out_channels=6,
kernel_size=(2,1,1),
stride=1,
padding=0,
dilation=1,
groups=1,
bias=False)

# 参数group的作用为:将输入数据按通道顺序分组, 每组有in_channel/group个通道.(例:group为2时,输入数据前一半通道为一组).同时, 每组对应的kernel个数, 从原来的out_channel变为outchannel/group.此处的kernel为三维及以上结构,而filter特指二维层状的过滤器。原来的情况中, 每个生成的特征图都有所有通道的贡献.而现在, 特征图仅由其所在group对应的通道卷积构成.
# 简而言之, group参数的目的就是将原本的大卷积分成多个并联(side by side)的小卷积
# 另: 在in_channel不变的情况下, 当group>1时, kernel总数不变, 而filter总数缩小group倍.而在filter、kernel总数不变的情况下, group增大, 需要的in_channel按同样比例增大.
# 参数dilation的作用为: 控制卷积核元素的间隔大小.具体可搜索“空洞卷积”

output=conv(x)
print('output=',output.data)
print('outputsize=',output.data.size())
# output.data.size()的返回值:
# (batch, out_channels/ or num_of_featurecube, size_of_featurecube)
import torch
import torch.nn as nn
import numpy as np

x = torch.Tensor([1,10,100,1000,10000,100000]).view(1,2,-1,1,1)
# view()函数用来reshape,-1参数意为自动设置,此处计算得6
# Conv2d的规定输入数据格式为(batch, channel, Height, Width)
# Conv3d的规定输入数据格式为(batch, channel, Depth, Height, Width)

# 如果输入的大小是(N,C,D,H,W),那么输出的大小是(N,C,D_out,H_out,W_out)

maxpool = nn.MaxPool3d(kernal_size=2,
stride=2,
padding=0,
dilation=1,
retuirn_indices=False,
ceil_mode=False)

# return_indices - 如果等于True,会返回输出最大值的序号,对于上采样操作会有帮助
# ceil_mode - 如果等于True,计算输出信号大小的时候,会使用向上取整,代替默认的向下取整的操作


# 如果输入的大小是(N,C,D,H,W),那么输出的大小是(N,C,D_out,H_out,W_out)
avgpool = nn.AvgPool3d(kernal_size=2,
stride=2,
padding=0,
ceil_mode=False,
count_include_pad=True)

# count_include_pad - 如果等于True,计算平均池化时,将包括padding填充的0
Author: pangzibo243
Link: https://litianbo243.github.io/2019/09/09/卷积-池化/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
支付宝打赏
微信打赏