有关定义函数的基本Python问题

时间:2019-03-10 20:39:58

标签: python pytorch

我有一个关于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()

这个问题让我有些困惑...希望有人可以帮忙。谢谢!

1 个答案:

答案 0 :(得分:0)

第一个问题:为什么我需要在第一行定义损失函数?

回答:nn.MSELoss是一个类。编写loss = nn.MSELoss()时,您正在创建MSELoss类的实例对象。如您所说,这不是功能。

第二个问题:我无法用nn.MSELoss()代替第四行的loss()

答案:是的,您需要使用一个对象来访问该类的属性和方法。您不能直接从课程中访问。

希望我为您提供帮助。