神经网络 ANN

  • 代码定义

    • 首先我们继承自 torch.nn.Module
    • 我们定义每一层 Hide 都会用到 self.layer = nn.Linear(input_dim,output_dim)
  • 正向传播 Forward Propagation

    • 需要传入一个 torch.tensor 变量 x,然后使用 x = torch.sigmoid(self.layer1(x))
    • 当然可以使用其它激活函数代替 sigmoid()
  • 损失函数 Loss Function

    • 常见的有 nn.MSELoss() 等
  • 优化函数 Optim

    • 采用 torch.optim 库的 SGD(随机梯度下降)
    • SGD 参数是学习参数 model.parameters(), 和学习率 learning_rate=0.1
    • 前者需要定义好 model 的层数
  • 反向传播 Backward Propagation

    • 总共分三步:清零梯度,计算本层梯度,执行
    • optimizer.zero_grad() -> loss.backward() -> optimizer.step()