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)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/rfx/70647.html