
这里的linear也可以堪称一个module,里面也定义了forward,因此在定义为为一个线性模型以后,可以直接(x)
net = Net(1,10,1)
print(net)
可以输出网络结构
搭建完以后需要优化神经网络参数

然后是正式训练过程:
for i in range(100):
prediction = net(x)#就像在Net类中写的self.predict(x),这里的x就是类中forward中传入的参数x
#同时这里返回的是forward后的值
loss = loss_func(prediction, y)#这里的loss经过实例化以后也可以再传入参数
optimizer.zero_grad()#先把需要优化的参数net.parameters()的梯度全部降为0
loss.backward()#然后在loss反向传递的过程中自动算梯度,保存在Variable中
optimizer.step()#优化梯度
画图

注意,数据传入前需要进行格式转换,torch只能处理二维数据

然后变为Variable

本文详细介绍使用PyTorch构建并训练神经网络的过程,包括网络结构定义、参数优化及训练循环,通过具体代码示例展示如何实现前向传播、损失计算、梯度更新等关键步骤。
8815

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



