一、快速搭建
这是上一篇博客中所用的搭建方法,看起来确实复杂。
主要思路:我们用 class 继承了一个 torch 中的神经网络结构, 然后对其进行了修改。
#-----建立神经网络-----
class Net(torch.nn.Module): #继承torch的组件
#class(类)是面向对象编程的基本概念,是一种自定义数据结构类型 命名为Net
#init搭建这个信息层所需要的信息
def __init__(self, n_feature, n_hidden, n_output):
super(Net, self).__init__() # 继承 __init__ 功能
#首先找到Net的父类(比如是类nn.Module),然后把类Net的对象self转换为类nn.Module的对象,然后“被转换”的类nn.Module对象调用自己的init函数
self.hidden = torch.nn.Linear(n_feature, n_hidden) # 隐藏层线性输出
self.predict = torch.nn.Linear(n_hidden, n_output) # 输出层线性输出
#nn.Linear():用于设置网络中的全连接层,需要注意的是全连接层的输入与输出都是二维张量
#【此处注释一】#
#把前面的内容一个一个传递到这里进行组合,搭流程图就是forward所做的事情。
def forward(self, x): #x为输入信息
# 正向传播输入值, 神经网络分析出输出值
x = F.relu(self.hidden(x)) # activation function for hidden layer
#relu是小于0的改为0,大