我有一个关于Python代码的基本问题。
例如,
import torch
import torch.nn as nn
loss = nn.MSELoss()
input = torch.randn(3, 5, requires_grad=True)
target = torch.randn(3, 5)
output = loss(input, target)
output.backward()
为什么我需要在第一行定义损失函数?我无法将第四行的loss()
替换为nn.MSELoss()
。
这个问题让我有些困惑...希望有人可以帮忙。谢谢!
答案 0 :(得分:0)
第一个问题:为什么我需要在第一行定义损失函数?
回答:nn.MSELoss
是一个类。编写loss = nn.MSELoss()
时,您正在创建MSELoss类的实例对象。如您所说,这不是功能。
第二个问题:我无法用nn.MSELoss()代替第四行的loss()
答案:是的,您需要使用一个对象来访问该类的属性和方法。您不能直接从课程中访问。
希望我为您提供帮助。