遵义网站制作小程序,辛集做网站,石狮网站建设,网站建设 整改报告沐神版《动手学深度学习》学习笔记#xff0c;记录学习过程#xff0c;详细的内容请大家购买书籍查阅。
b站视频链接 开源教程链接
卷积层里的填充和步幅 应用5x5大小的卷积核#xff0c;输入32x32#xff0c;输出会变为28x28。 更大的卷积核更快地减小输出大小。 导致网…沐神版《动手学深度学习》学习笔记记录学习过程详细的内容请大家购买书籍查阅。
b站视频链接 开源教程链接
卷积层里的填充和步幅 应用5x5大小的卷积核输入32x32输出会变为28x28。 更大的卷积核更快地减小输出大小。 导致网络做不深只能做到7层。 填充的效果输出可以做的比输入还大 填充值一般为0 填充减少的输入大小与层数线性相关为了避免大量计算需要增大步幅 高和宽是2的倍数卷积核大小为2步幅取2可以实现每次将输入的高和宽都除以2 总结 填充是想把模型做深时所用的办法步幅可以成倍的减小输出形状。
动手学
填充
import torch
from torch import nn# 为了方便起见我们定义了一个计算卷积层的函数。
# 此函数初始化卷积层权重并对输入和输出提高和缩减相应的维数
def comp_conv2d(conv2d, X):# 这里的11表示批量大小和通道数都是1X X.reshape((1, 1) X.shape)Y conv2d(X)# 省略前两个维度批量大小和通道return Y.reshape(Y.shape[2:])# 请注意这里每边都填充了1行或1列因此总共添加了2行或2列
conv2d nn.Conv2d(1, 1, kernel_size3, padding1)
X torch.rand(size(8, 8))
comp_conv2d(conv2d, X).shapetorch.Size([8, 8])conv2d nn.Conv2d(1, 1, kernel_size(5, 3), padding(2, 1)) # 非对称卷积核
comp_conv2d(conv2d, X).shapetorch.Size([8, 8])步幅
conv2d nn.Conv2d(1, 1, kernel_size3, padding1, stride2)
comp_conv2d(conv2d, X).shapetorch.Size([4, 4])conv2d nn.Conv2d(1, 1, kernel_size(3, 5), padding(0, 1), stride(3, 4))
comp_conv2d(conv2d, X).shapetorch.Size([2, 2])