torch.pow 无效
torch.pow does not work
我正在尝试使用 PyTorch 创建自定义损失函数,但 运行 遇到了一个简单的错误。
当我尝试使用 torch.pow 获取 PyTorch 变量的指数时,我收到以下错误消息:
AttributeError: 'torch.LongTensor' 对象没有属性 'pow'
在 python 终端中,我创建了一个简单的变量,并尝试执行相同的操作,但收到了相同的错误。这是一个应该重现问题的片段:
import torch
from torch.autograd import Variable
import numpy as np
v = Variable(torch.from_numpy(np.array([1, 2, 3, 4])))
torch.pow(v, 2)
我找不到关于此问题的任何信息,搜索结果中也没有显示任何内容。帮忙?
编辑:当我尝试使用 torch.sqrt() 时也会出现此问题
编辑:如果我尝试做
,也会发生同样的问题
v.pow(2)
pow 绝对是 v 的一种方法,文档明确指出 pow 是一种存在的方法,并以张量作为参数。我真的不明白这是怎么发生的,在我看来,文档完全错误,这些方法实际上不起作用。
您需要将张量初始化为浮点数,因为pow
总是returns一个浮点数。
import torch
from torch.autograd import Variable
import numpy as np
v = Variable(torch.from_numpy(np.array([1, 2, 3, 4], dtype="float32")))
torch.pow(v, 2)
之后您可以将其转换回整数
torch.pow(v, 2).type(torch.LongTensor)
产量
Variable containing:
1
4
9
16
[torch.LongTensor of size 4]
我正在尝试使用 PyTorch 创建自定义损失函数,但 运行 遇到了一个简单的错误。
当我尝试使用 torch.pow 获取 PyTorch 变量的指数时,我收到以下错误消息:
AttributeError: 'torch.LongTensor' 对象没有属性 'pow'
在 python 终端中,我创建了一个简单的变量,并尝试执行相同的操作,但收到了相同的错误。这是一个应该重现问题的片段:
import torch
from torch.autograd import Variable
import numpy as np
v = Variable(torch.from_numpy(np.array([1, 2, 3, 4])))
torch.pow(v, 2)
我找不到关于此问题的任何信息,搜索结果中也没有显示任何内容。帮忙?
编辑:当我尝试使用 torch.sqrt() 时也会出现此问题 编辑:如果我尝试做
,也会发生同样的问题v.pow(2)
pow 绝对是 v 的一种方法,文档明确指出 pow 是一种存在的方法,并以张量作为参数。我真的不明白这是怎么发生的,在我看来,文档完全错误,这些方法实际上不起作用。
您需要将张量初始化为浮点数,因为pow
总是returns一个浮点数。
import torch
from torch.autograd import Variable
import numpy as np
v = Variable(torch.from_numpy(np.array([1, 2, 3, 4], dtype="float32")))
torch.pow(v, 2)
之后您可以将其转换回整数
torch.pow(v, 2).type(torch.LongTensor)
产量
Variable containing:
1
4
9
16
[torch.LongTensor of size 4]