小编kow*_*r66的帖子

pytorch如何进行多次前向传播和一次反向传播?

import torch
import torchvision.models as models
model = models.resnet18()
optimizer = torch.optim.SGD(model.parameters(), lr=1e-3)
x = torch.randn(1, 3, 224, 224)
y = torch.randn(1, 3, 224, 224)
Run Code Online (Sandbox Code Playgroud)

#第一种方法

loss1 = model(x).mean()
loss2 = model(y).mean()
(loss1+loss2).backward()
optimizer.step()
Run Code Online (Sandbox Code Playgroud)

我想转发两个数据集,它们的总损失将用于向后和更新一个模型。这种做法正确吗?

#第二种方法

loss1 = model(x).mean()
loss1.backward()
loss2 = model(y).mean()
loss2.backward()
optimizer.step()
Run Code Online (Sandbox Code Playgroud)

第一种方法和第二种方法有什么区别?

gradient-descent deep-learning pytorch loss-function

2
推荐指数
1
解决办法
1136
查看次数