torch.nn神经网络
1.nn.Module神经网络的使用
首先导入所需的模板:
import torch
from torch import nn
定义一个类,使其继承于nn.Module类:
①定义初始化函数时需要先完成其父类的初始化操作。
②同时定义一个forward函数,进行神经网络正向传播的作用。
class ChenYu(nn.Module):
def __init__(self):
super().__init__() #首先要完成父类的初始化
def forward(self,input): #forward表示正向传播
output=input+1
return output
定义完成后实例化这个类,并进行传参,即可实现:
chenyu=ChenYu()
x = torch.tensor(1.0)
output = chenyu(x)
print(output)
运行结果👇: 这里初始化x为tensor类型的值为1.0的属性,经过神经网络的正向传播完成+1操作后,最终返回的结果为2.0
tensor(2.)
2.torch.nn.functional的使用
在Pytorch官方文档中我们可以看到torch.nn.functional的介绍:
关于该函数的使用方法👇:
关于函数的参数定义👇:
tips:这里对各参数进行一个解释:
F.conv2d(input,kernel,stride=2,padding=1)
input 代表输入
kernel 代表用于计算的卷积核
stride 代表没卷积核移动的步大小
padding 代表周围用于补充的数据
我们想要构造一个卷积网络,使用Fonctional.conv2d()函数构造如下的卷积网络:
首先需要导入模块:
import torch
import torch.nn.functional as F
定义输入图像的55的矩阵,及33的卷积核矩阵,使用torch.tenser()函数将其转化为tensor类型:
input = torch.tensor([[1,2,0,3,1],
[0,