自定义 手动实现module
class MLP(nn.Module): def __init__(self): super().__init__() self.hidden = nn.Linear(20, 256) self.out = nn.Linear(256, 10) def forward(self, x): # 前向计算 return self.out(F.relu(self.hidden(x)))net = MLP()# print(net(x))
定义网络
MLP网络
卷积神经网络
灵活地建构网络
class FixedhiddenMLP(nn.Module): def __init__(self): super().__init__() self.rand_weight = torch.rand((20, 20), requires_grad=False) self.liner = nn.Linear(20, 20) def forward(self, x): x = self.liner(x) x = F.relu(torch.mm(x, self.rand_weight) + 1) x = self.liner(x) while x.abs().sum() > 1: x /= 2 return x.sum()