美文网首页
CNN卷积层的填充和步幅

CNN卷积层的填充和步幅

作者: 小黄不头秃 | 来源:发表于2022-09-04 00:45 被阅读0次

(一)填充和步幅

(1)填充

假设我们有一张(32,32)大小的图片,使用的卷积核是(5,5).那么每经过一次卷积核,图片的高和宽就会减少4个像素。

  • 第一层输出为(28,28)
  • 第七层的输出为(4,4)

更大的卷积核可以加速图片图片压缩的更小。
经过一层图片的形状变化的公式:
(n_h,\ n_w)\ =>\ (n_h-k_h+1,\ n_w-k_w+1)

那么问题来了,因为每一次经过卷积过后,图片就会缩小,极有可能经过几次的卷积之后,图片就已经变得很小了。如果我不想让他那么快的变小怎么办呢?

答案是:填充。即,在输入的四周添加额外的行和列

经过填充后,输出的形状就会发生改变。

(n_h+p_h,\ n_w+p_w)\ =>\ (n_h-k_h+p_h+1,\ n_w-k_w+p_w+1)

通常我们让p_h = k_h-1, 因为这样能够让输入经过卷积后大小不发生变化。

(2)步幅

假设我们的输入的形状是(244,244),在使用(5,5)大小的卷积核的情况下,如果我们要将输出变成(4,4)的大小,我们需要55层。这样也是我们不希望的,这将耗费大量的计算。我们可以通过控制步幅来加速图片的压缩

步幅:指的是卷积核在扫描输入做计算的时候在行和列上,一次移动的长度。上面所有的都是默认为1.下图表示的是步幅为2.

经过步幅的调整后,输出的形状也会发生变化。

(二)代码实现

import torch
from torch import nn

X = torch.rand(size=(8,8))

def com_conv2d(conv2d, X):
    X = X.reshape((1,1)+X.shape)
    Y = conv2d(X)
    return Y.reshape(Y.shape[2:])

# 四周填充1个像素,那么输入和输出的形状是一样的。
conv2d = nn.Conv2d(1,1,kernel_size=(3,3),padding=1)
print(com_conv2d(conv2d,X).shape)
# 也可以填充不同的高度和宽度,上下为2,左右为1
conv_2d = nn.Conv2d(1,1,kernel_size=(5,3),padding=(2,1))
print(com_conv2d(conv2d,X).shape)
# 使用步长为2
conv2d = nn.Conv2d(1,1,kernel_size=(3,3),padding=1,stride=2)
print(com_conv2d(conv2d,X).shape)
conv2d = nn.Conv2d(1,1,kernel_size=(3,5),padding=(0,1),stride=(3,4))
print(com_conv2d(conv2d,X).shape)

相关文章

  • CNN卷积层的填充和步幅

    (一)填充和步幅 (1)填充 假设我们有一张(32,32)大小的图片,使用的卷积核是(5,5).那么每经过一次卷积...

  • 第五天-卷积神经网络基础,LeNet,卷积神经网络进阶

    卷积神经网络基础 本节我们介绍卷积神经网络的基础概念,主要是卷积层和池化层,并解释填充、步幅、输入通道和输出通道的...

  • 卷积神经网络基础 2020-02-18

    卷积神经网络基础 本节我们介绍卷积神经网络的基础概念,主要是卷积层和池化层,并解释填充、步幅、输入通道和输出通道的...

  • 四.CNN及各模型

    1.卷积神经网络基础 主要是卷积层和池化层,并解释填充、步幅、输入通道和输出通道的含义,介绍各种概念 1.1二维互...

  • Task05:动手学深度学习——卷积神经网络

    (学习笔记,待补充)本文目录如下: 1.卷积神经网络基础1.1 二维互相关运算1.2 二维卷积层1.3 填充和步幅...

  • 卷积神经网络

    本文主要介绍一些卷积层和池化层,并解释填充、步幅、输入通道和输出通道的含义。以及LeNet的一些应用 二维互相关运...

  • 卷积神经网络

    参考博客: 卷积神经网络_(1)卷积层和池化层学习 - outthinker - 博客园 卷积神经网络(CNN)模...

  • tensorflow之深度学习-卷积神经网络

    卷积神经网络(CNN)由输入层、卷积层、激活函数、池化层、全连接层组成,即INPUT(输入层)-CONV(卷积层)...

  • TensorFlow系列专题(十三):CNN最全原理剖析(序)

    目录 前言 卷积层(余下部分)卷积的基本结构卷积层什么是卷积滑动步长和零填充池化层卷积神经网络的基本结构 总结 参...

  • caffe自学03

    卷积神经网络(CNN,Convolutional Neural Network) 卷积层(Convolutiona...

网友评论

      本文标题:CNN卷积层的填充和步幅

      本文链接:https://www.haomeiwen.com/subject/bqtrnrtx.html