目录
一、卷积层的使用
利用pytorch中的nn可以实现卷积层
1、生成随机数据
先利用randn随机生成一组3维数据x,x是维度为2×9×9的数据(如下面的代码)
2、创建卷积层
第一个参数需要与数据的通道数保持一致(即2×9×9中的2),所以我写的是x.shape[0]
第二个参数是输出通道数,也就是卷积核的组数,即需要输出的特征图个数
第三个参数是卷积核大小,一定要小于等于数据的大小(小于2×9×9中的9)否则无法计算
第四个是步长,表示以什么间隔移动
第五个是填充
第六个是是否有偏置,如果需要则为True
3、运用卷积层进行计算
运用卷积层的方法非常简单,如代码所示。
所用代码如下。
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)
二、池化层的使用
与卷积层的实现方式相似
1、创建随机数据
这里的数据依旧为x。
2、创建最大池化层
第一个参数为卷积核大小,如果用的是2维池化,卷积核大小为3×3;如果是1维池化,卷积核大小为1×3
对于1维2维池化层的理解可以参考这篇博客:1维2维最大池化层理解
3、运用池化层计算
与卷积层的运用相似
所用代码如下
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框架的便捷性。