Numpy torch.pow不工作

Numpy torch.pow不工作,numpy,pytorch,Numpy,Pytorch,我试图使用PyTorch创建一个自定义的loss函数,但遇到了一个简单的错误 当我尝试使用torch.pow获取PyTorch变量的指数时,我得到以下错误消息: AttributeError:“torch.LongTensor”对象没有属性“pow” 在python终端中,我创建了一个简单的变量,并尝试执行相同的操作,但收到了相同的错误。下面是一个应该会重现问题的片段: import torch from torch.autograd import Variable import numpy a

我试图使用PyTorch创建一个自定义的loss函数,但遇到了一个简单的错误

当我尝试使用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
总是返回浮点数

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]

如果使用
[1.0,2.0,3.0,4.0]
而不是整数创建数组,会发生什么情况?是的!就是这样!谢谢这里也一样: