pytorch nn.Conv2d()中的padding以及输出大小方式

我就废话不多说了,直接上代码吧!

conv1=nn.Conv2d(1,2,kernel_size=3,padding=1)
conv2=nn.Conv2d(1,2,kernel_size=3)

inputs=torch.Tensor([[[[1,2,3],
           [4,5,6],
           [7,8,9]]]])
print("input size: ",inputs.shape)
outputs1=conv1(inputs)
print("output1 size: ",outputs1.shape)
outputs2=conv2(inputs)
print("output2 size: ",outputs2.shape)

输出:
input size: torch.Size([1, 1, 3, 3])
output1 size: torch.Size([1, 2, 3, 3])
output2 size: torch.Size([1, 2, 1, 1])

padding是指卷积前进行padding,这样保证输出的图像形状大小与输入相同,但是通道数channel改变了。

以上这篇pytorch nn.Conv2d()中的padding以及输出大小方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • pytorch1.0中torch.nn.Conv2d用法详解

    Conv2d的简单使用 torch 包 nn 中 Conv2d 的用法与 tensorflow 中类似,但不完全一样. 在 torch 中,Conv2d 有几个基本的参数,分别是 in_channels 输入图像的深度 out_channels 输出图像的深度 kernel_size 卷积核大小,正方形卷积只为单个数字 stride 卷积步长,默认为1 padding 卷积是否造成尺寸丢失,1为不丢失 与tensorflow不一样的是,pytorch中的使用更加清晰化,我们可以使用这种方法定义输

  • 在Pytorch中计算卷积方法的区别详解(conv2d的区别)

    在二维矩阵间的运算: class torch.nn.Conv2d(in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True) 对由多个特征平面组成的输入信号进行2D的卷积操作.详解 torch.nn.functional.conv2d(input, weight, bias=None, stride=1, padding=0, dilation=1, groups=1)

  • Pytorch.nn.conv2d 过程验证方式(单,多通道卷积过程)

    今天在看文档的时候,发现pytorch 的conv操作不是很明白,于是有了一下记录 首先提出两个问题: 1.输入图片是单通道情况下的filters是如何操作的? 即一通道卷积核卷积过程 2.输入图片是多通道情况下的filters是如何操作的? 即多通道多个卷积核卷积过程 这里首先贴出官方文档: classtorch.nn.Conv2d(in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1

  • pytorch nn.Conv2d()中的padding以及输出大小方式

    我就废话不多说了,直接上代码吧! conv1=nn.Conv2d(1,2,kernel_size=3,padding=1) conv2=nn.Conv2d(1,2,kernel_size=3) inputs=torch.Tensor([[[[1,2,3], [4,5,6], [7,8,9]]]]) print("input size: ",inputs.shape) outputs1=conv1(inputs) print("output1 size: ",outp

  • PyTorch基础之torch.nn.Conv2d中自定义权重问题

    目录 torch.nn.Conv2d中自定义权重 torch.nn.Conv2d()用法讲解 用法 参数 相关形状 总结 torch.nn.Conv2d中自定义权重 torch.nn.Conv2d函数调用后会自动初始化weight和bias,本文主要涉及 如何自定义weight和bias为需要的数均分布类型: torch.nn.Conv2d.weight.data以及torch.nn.Conv2d.bias.data为torch.tensor类型,因此只要对这两个属性进行操作即可. [sampl

  • tf.nn.conv2d与tf.layers.conv2d的区别及说明

    目录 tf.nn.conv2d与tf.layers.conv2d的区别 tf.nn.conv2d tf.layers.conv2d tf.nn.conv2d和tf.layers.conv2d的学习 总结 tf.nn.conv2d与tf.layers.conv2d的区别 在写CNN中注意到tensorflow目前有tf.nn.conv2d和tf.layers.conv2d这两个很相似的API. tf.nn.conv2d, 需要自行传入初始化好的filter(四个维度),在初始化filter或者说W

  • pytorch中的torch.nn.Conv2d()函数图文详解

    目录 一.官方文档介绍 二.torch.nn.Conv2d()函数详解 参数dilation——扩张卷积(也叫空洞卷积) 参数groups——分组卷积 总结 一.官方文档介绍 官网 nn.Conv2d:对由多个输入平面组成的输入信号进行二维卷积 二.torch.nn.Conv2d()函数详解 参数详解 torch.nn.Conv2d(in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1,

  • PyTorch中的padding(边缘填充)操作方式

    简介 我们知道,在对图像执行卷积操作时,如果不对图像边缘进行填充,卷积核将无法到达图像边缘的像素,而且卷积前后图像的尺寸也会发生变化,这会造成许多麻烦. 因此现在各大深度学习框架的卷积层实现上基本都配备了padding操作,以保证图像输入输出前后的尺寸大小不变.例如,若卷积核大小为3x3,那么就应该设定padding=1,即填充1层边缘像素:若卷积核大小为7x7,那么就应该设定padding=3,填充3层边缘像素:也就是padding大小一般设定为核大小的一半.在pytorch的卷积层定义中,默

  • 基于pytorch padding=SAME的解决方式

    tensorflow中的conv2有padding='SAME'这个参数.吴恩达讲课中说到当padding=(f-1)/2(f为卷积核大小)时则是SAME策略.但是这个没有考虑到空洞卷积的情况,也没有考虑到strides的情况. 查阅资料后发现网上方法比较麻烦. 手算,实验了一个早上,终于初步解决了问题. 分为两步: 填充多少 中文文档中有计算公式: 输入: 输出: 因为卷积后图片大小同卷积前,所以这里W_out=W_in, H_out=H_in.解一元一次方程即可.结果取ceil. 怎么填充

  • TensorFlow tf.nn.conv2d实现卷积的方式

    实验环境:tensorflow版本1.2.0,python2.7 介绍 惯例先展示函数: tf.nn.conv2d(input, filter, strides, padding, use_cudnn_on_gpu=None, name=None) 除去name参数用以指定该操作的name,与方法有关的一共五个参数: input: 指需要做卷积的输入图像,它要求是一个Tensor,具有[batch, in_height, in_width, in_channels]这样的shape,具体含义是[

  • 对pytorch的函数中的group参数的作用介绍

    1.当设置group=1时: conv = nn.Conv2d(in_channels=6, out_channels=6, kernel_size=1, groups=1) conv.weight.data.size() 返回: torch.Size([6, 6, 1, 1]) 另一个例子: conv = nn.Conv2d(in_channels=6, out_channels=3, kernel_size=1, groups=1) conv.weight.data.size() 返回: t

随机推荐