pytorch 构建神经网络 逻辑

 

形如这种

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()

 https://mp.weixin.qq.com/s/1FcR9SUUnNsACWpX0uaNjQ

https://blog.csdn.net/zkk9527/article/details/88399176

你可能感兴趣的:(pytorch)