Me gusta esto
Class Net (nn.Module):
def __init__(self):
super().__init__()
self.conv1=nn.Conv2d(1,6,5)
self.conv2=nn.Conv2d(6,16,5)
def forward(self, x):
x=F.max_pool2d(F.relu(self.conv1(x)),2)
x=F.max_pool2d(F.relu(self.conv2(x)),2)
net=Net()
output=net(input)
定义损失函数,以MSEloss为例:
compute_loss=nn.MSELoss()
把你的神经网络的输出,和标准答案target传入进去:
loss=compute_loss(target,output)
反向传播:
loss.backward()
定义优化器
from torch import optim
optimizer=optim.SGD(net.parameters(),lr=0.001,momentum=0.9)
梯度清零一下(因为W已经更新过的“更新量”下一次就不需要用了)
optimizer.zero_grad()
在loss.backward()反向传播以后,更新参数:
optimizer.step()