之前用Class类
来搭建神经网络
class Neuro_net(torch.nn.Module):
"""神经网络"""
def __init__(self, n_feature, n_hidden_layer, n_output):
super(Neuro_net, self).__init__()
self.hidden_layer = torch.nn.Linear(n_feature, n_hidden_layer)
self.output_layer = torch.nn.Linear(n_hidden_layer, n_output)
def forward(self, input):
hidden_out = torch.relu(self.hidden_layer(input))
out = self.output_layer(hidden_out)
return out
net = Neuro_net(2, 10, 2)
print(net)
class类图结构:
使用torch.nn.Sequential()
快速搭建神经网络
net = torch.nn.Sequential(
torch.nn.Linear(2, 10),
torch.nn.ReLU(),
torch.nn.Linear(10, 2)
)
print(net)
Sequential图结构
总结:
- 我们可以发现,使用
torch.nn.Sequential
会自动加入激励函数, 但是 class类net 中, 激励函数实际上是在 forward() 功能中才被调用的 - 使用class类中的
torch.nn.Module
,我们可以根据自己的需求改变传播过程 - 如果你需要快速构建或者不需要过多的过程,直接使用
torch.nn.Sequential
吧