当前位置:网站首页 > R语言数据分析 > 正文

conv2d参数解释(conv2d stride)



Conv2d中最常用的参数就是in_channels ,out_channels ,kernel_size ,stride ,padding 这5个,往往需要我们手动输入,本文结合代码介绍了stride和padding参数的使用。

目录

前言

一、Conv2d的官方文档

二、开始练习

1.写入数据

2.conv2d中stride练习

3.conv2d中padding 练习

4.完整代码及结果

总结


Convolution Layers 卷积层内有很多的工具
nn.Conv1d    1维数据处理
nn.Conv2d    2维数据处理,像图片

其中用的最多的还是Conv2d。


torch.nn.functional.Conv2d(input: Tensor, 
weight: Tensor, 
bias: Optional[Tensor]=None, 
stride: Union[_int, _size]=1, 
padding: str="valid", 
dilation: Union[_int, _size]=1, 
groups: _int=1)

使用手动输入数组,可以使用functional下的conv2d来运行一下,明白卷积的原理

代码如下:

输出结果:
torch.Size([5, 5])
torch.Size([3, 3])

因为conv2d中输入的数据应该有(N, C, H, W)的。.
其中:
N是batch的大小
C是通道数量
H是输入的高度
W是输入的宽度

import torch

input = torch.tensor([[1, 2, 0, 3, 1],
                      [0, 1, 2, 3, 1],
                      [1, 2, 1, 0, 0],
                      [5, 2, 3, 1, 1],
                      [2, 1, 0, 1, 1]])

kernal = torch.tensor([[1, 2, 1],
                       [0, 1, 0],
                       [2, 1, 0]])
input = torch.reshape(input, (1, 1, 5, 5))
kernal = torch.reshape(kernal, (1, 1, 3, 3))
print(input.shape)
print(kernal.shape)

输出结果为:
torch.Size([1, 1, 5, 5])
torch.Size([1, 1, 3, 3])

这样就符合conv2d的输入要求了。

调用conv2d函数了,代码如下:

import torch.nn.functional as F

该处使用的url网络请求的数据。

代码如下:

import torch
import torch.nn.functional as F
#输入图像
input = torch.tensor([[1, 2, 0, 3, 1],
                      [0, 1, 2, 3, 1],
                      [1, 2, 1, 0, 0],
                      [5, 2, 3, 1, 1],
                      [2, 1, 0, 1, 1]])
#卷积核
kernal = torch.tensor([[1, 2, 1],
                       [0, 1, 0],
                       [2, 1, 0]])

#卷积后的结果


input = torch.reshape(input, (1, 1, 5, 5))   #转换尺寸
kernal = torch.reshape(kernal, (1, 1, 3, 3)) #转换尺寸

#stride步练习
output = F.conv2d(input, kernal, stride=1, )
print(output)

#padding练习
output4 = F.conv2d(input, kernal, stride=1, padding=1)
print(output4)


输出结果:
torch.Size([1, 1, 5, 5])
torch.Size([1, 1, 3, 3])
tensor([[[[10, 12, 12],
          [18, 16, 16],
          [13,  9,  3]]]])
tensor([[[[10, 12],
          [13,  3]]]])
tensor([[[[10, 12],
          [18, 16],
          [13,  3]]]])
tensor([[[[ 1,  3,  4, 10,  8],
          [ 5, 10, 12, 12,  6],
          [ 7, 18, 16, 16,  8],
          [11, 13,  9,  3,  4],
          [14, 13,  9,  7,  4]]]])
tensor([[[[ 0,  1,  3,  4, 10,  8,  2],
          [ 1,  5, 10, 12, 12,  6,  1],
          [ 0,  7, 18, 16, 16,  8,  3],
          [ 1, 11, 13,  9,  3,  4,  2],
          [ 5, 14, 13,  9,  7,  4,  1]]]])


以上就是今天要讲的内容,本文仅仅简单介绍了介绍了conv2d中的stride和padding参数的使用,要想学好conv2d,还有很多东西需要学习。

到此这篇conv2d参数解释(conv2d stride)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 启动docker的命令(docker开机启动命令)2025-02-05 20:09:07
  • ldr指令和str指令(ldrsb指令)2025-02-05 20:09:07
  • swagger查看(怎么查看swagger地址)2025-02-05 20:09:07
  • cruise软件在汽车行业用的多吗(cruise软件在汽车行业用的多吗知乎)2025-02-05 20:09:07
  • spring教程百度网盘(spring揭秘pdf百度网盘)2025-02-05 20:09:07
  • cruise安装包(cruise安装包百度云)2025-02-05 20:09:07
  • 数组方法pop(数组方法filter)2025-02-05 20:09:07
  • spring教程视频(spring教程 csdn)2025-02-05 20:09:07
  • redhat enterprise需要激活吗(redhat license)2025-02-05 20:09:07
  • druid连接池配置文件(druid连接池jar包)2025-02-05 20:09:07
  • 全屏图片