赞
踩
目录
利用pytorch中的nn可以实现卷积层
先利用randn随机生成一组3维数据x,x是维度为2×9×9的数据(如下面的代码)
第一个参数需要与数据的通道数保持一致(即2×9×9中的2),所以我写的是x.shape[0]
第二个参数是输出通道数,也就是卷积核的组数,即需要输出的特征图个数
第三个参数是卷积核大小,一定要小于等于数据的大小(小于2×9×9中的9)否则无法计算
第四个是步长,表示以什么间隔移动
第五个是填充
第六个是是否有偏置,如果需要则为True
运用卷积层的方法非常简单,如代码所示。
所用代码如下。
- import torch.nn as nn
- import torch
-
- x = torch.randn(2, 9, 9) #创建随机数据
- m = nn.Conv2d(x.shape[0], 3, 3, stride=1, padding=0, bias=True) # 创建卷积层
- output = m(x) # 运用卷积层计算
-
- print(x)
- print(output)
与卷积层的实现方式相似
这里的数据依旧为x。
第一个参数为卷积核大小,如果用的是2维池化,卷积核大小为3×3;如果是1维池化,卷积核大小为1×3
对于1维2维池化层的理解可以参考这篇博客:1维2维最大池化层理解
与卷积层的运用相似
所用代码如下
- import torch.nn as nn
- import torch
-
- x = torch.randn(2, 9, 9) #创建随机数据
- p = nn.MaxPool2d(3, stride=2) # 创建最大池化层,我用的2维最大池化
- output_2 = p(x) # 运用池化层计算
- print(output_2)
两种不同的层的使用方法类似,主要还是因为pytorch框架的便捷性。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。