神经网络就是很多的线性函数和非线性函数组成的复合函数。
- 自定义类继承
torch.nn.Module
- 自定义类中实现
__init__
和forward()
函数 __init__
定义神经网络结构forward()
模型的正向传播
class NeuralNet(torch.nn.Module):
"""自定义神经网络"""
def __init__(self,input_size,hidden_size):
# 参数为输入维度 和 隐藏层维度
# 调用父类初始化函数
super(NeuralNet,self).__init__()
# 线性模型层 输入 隐藏层
self.linear1 = torch.nn.Linear(input_size,hidden_size)
# relu激活函数层
self.relu = torch.nn.ReLU()
# 线性模型层2 输出1
self.linear2 = torch.nn.Linear(hidden_size,1)
# sigmoid激活函数 分类问题输出0或1
self.sigmoid = torch.nn.Sigmoid()
def forward(self,x):
# 重写正向传播
out = self.linear1(x)
out = self.relu(out)
out = self.linear2(out)
out = self.sigmoid(out)
return out
# 打印模型
model = NeuralNet(10,20)
print(model)
连接层➡ReLU层➡连接层➡Sigmoid函数层