无法使用割炬创建张量

时间:2018-07-03 17:49:49

标签: python runtime-error pytorch tensor

我试图创建一个如下的张量。

import torch
t = torch.tensor(2,3)

我遇到以下错误。

  

TypeError跟踪(最近的呼叫   最后)在()   ----> 1 a = torch.tensor(2,3)

     

TypeError:tensor()接受1个位置参数,但给出了2个

所以,我尝试了以下

import torch
t = torch.Tensor(2,3)
# No error while creating the tensor
# When i print i get an error
print(t)

我遇到以下错误

  

RuntimeError跟踪(最近的调用)   最后)在()   ----> 1张(a)

     

D:\ softwares \ anaconda \ lib \ site-packages \ torch \ tensor.py在   代表(个体经营)        55#个字符替换unicode字符。        56如果sys.version_info>(3,):   ---> 57返回割炬._tensor_str._str()        58其他:        59 if hasattr(sys.stdout,'encoding'):

     

D:\ softwares \ anaconda \ lib \ site-packages \ torch_tensor_str.py在   _str()       216后缀=',dtype ='+ str(self.dtype)+后缀       217   -> 218 fmt,scale,sz = _number_format(self)       第219章       220前缀=前缀+ SCALE_FORMAT.format(scale)+''*缩进

     

D:\ softwares \ anaconda \ lib \ site-packages \ torch_tensor_str.py在   _number_format(张量,min_sz)        94#TODO:使用fmod吗?        张量值95:   ---> 96,如果value!= math.ceil(value.item()):        97 int_mode = False        98休息

     

RuntimeError:长时间解包时溢出

但是,根据This SO Post,他能够创建张量。我在这里想念什么吗?另外,为什么我能够使用Tensor(大写T)创建张量,而不能使用tensor(小t)创建张量

Please look at the error.

1 个答案:

答案 0 :(得分:0)

torch.tensor()期望使用序列或array_like来创建张量,而torch.Tensor()类可以仅使用形状信息来创建张量。

这是torch.tensor()的签名:

  

文档字符串
    张量(数据,dtype = None,设备=无,require_grad = False)->张量

     

使用:attr:data构造张量。

     

Args
     数据(array_like):张量的初始数据。可以是列表,元组,          NumPy ndarray,标量和其他类型。

     

dtype(:class:torch.dtype,可选):返回张量的所需数据类型。


关于RuntimeError:我无法在Linux发行版中重现该错误。从ipython终端打印张量可以很好地工作。

ipython print tensor


仔细检查错误,这似乎仅在Windows OS中是一个问题。如评论中所述,请看issues/6339: Error when printing tensors containing large values