赞
踩
当输入图像的维度不大,还想要实现深层的神经网络。
1. 填充:扩大输入的维度,在输入的四周添加元素(通常填充为0,防止人为因素对输出结果产生影响)
2. 填充行和列,输出形状为
(下标为h代表高,下标为w代表宽,n为原输入的大小,k为卷积核,p为填充数)
3. 通常取,是输出维度始终比输入维度多1
4. 当为奇数:在上下(左右)分别填充
当为偶数:在上(左)侧填充,在下(右)侧填充 (或者相反)
当输入图像的维度很大,在卷积核不大的情况下,要想使输出维度变得很小,会导致层数很深
1. 步幅:行列的滑动步长
2. 输出:
(s是步幅大小)
1. 填充和步幅是卷积层的超参数
2. 填充在输入周围添加额外的行和列,来控制输出形状的减少量
3. 步幅是每次滑动卷积核时行/列的步长,可以成倍的减少输出形状
在所有侧边填充1个像素
- import torch
- from torch import nn
-
- def comp_conv2d(conv2d,X):
- X = X.reshape((1,1)+X.shape)
- Y = conv2d(X)
- return Y.reshape(Y.shape[2:])
-
- #padding 填充数 stride 步幅
- conv2d = nn.Conv2d(1,1,kernel_size=(3,5),padding=(0,1),stride=(3,4))
- X = torch.rand(size=(8,8))
- comp_conv2d(conv2d,X).shape
注意:p_h代表的上下添加的行数之和,而padding参数代表的是一边添加的行数/列数,所以
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。