一、torch.nn.Module
所有搭建的神经网络都应该以这个为父类,下面是官方给的源代码
import torch.nn as nn
import torch.nn.functional as F
class Model(nn.Module):
def __init__(self):
super().__init__()
self.conv1 = nn.Conv2d(1, 20, 5)
self.conv2 = nn.Conv2d(20, 20, 5)
def forward(self, x):
x = F.relu(self.conv1(x))
return F.relu(self.conv2(x))
手动搭建一个神经网络,实现输入×2,重写__init__、forward方法
import torch
from torch import nn
class Fnn(nn.Module):
def __init__(self):
super().__init__()
# 集成的nn.Module中__call__方法的实现,传入参数直接调用
def forward(self, x):
y = x*2
return y
fnn = Fnn()
a = torch.tensor(1.0)
b = fnn(a)
print(b)
二.神经网络结构分析
✅卷积层:
作用:提取图像特征。下面是PyTorch官网给出torch.nn.functional的卷积函数的参数
input:输入图像,默认四维
weight:权重,也就是卷积核。默认四维
bias:偏置
stride:步长,即卷积核每次移动的距离
padding:填充(默认0填充),默认不填充