使用nn.Module构建神经网络
完成模型的训练包括:参数求导、梯度计算、参数更新以及训练过程的控制
nn.Module是PyTorch提供的神经网络类,并在类中实现了网络各层的定义及前向计算与反向传播机制。
在实际使用时,如果想要实现某个神经网络,只需继承nn.Module,在初始化中定义模型结构与参数,在函数forward()中编写网络前向过程即可。
下面具体以一个由两个全连接层组成的感知机为例,介绍如何使用nn.Module构造模块化的神经网络
可以把代码的两个类分为四个步骤:
1.初始化层参数
2.定义层结构
3.定义所有网络层
4.定义完整的模型
import torch
from torch import nn
class Linear(nn.Module):
def __init__(self, in_dim, out_dim):
# 1.初始化层参数
super(Linear, self).__init__()
self.w = nn.Parameter(torch.randn(in_dim, out_dim))
self.b = nn.Parameter(torch.randn(out_dim))
def forward(self, x):
# 2.定义层结构
x = x.matmul(self.w)
y = x + self.b.expand_as(x)
return y
class Perception(nn.Module)

最低0.47元/天 解锁文章
1089

被折叠的 条评论
为什么被折叠?



