python 将变量转换为torchTensor,之后Tensor为空/没有元素

9vw9lbht  于 2023-03-07  发布在  Python
关注(0)|答案(1)|浏览(335)

下面是我的代码,“序列”是我的训练数据,格式为[139行x 4列],0),其中139x4是我的信号,0是我的编码标签。

def __getitem__(self, idx):
    sequence, label = self.sequences[idx]
  
    #converting sequence and label to tensors 
    sequence = torch.Tensor(sequence.to_numpy())
      
    print("label before tensor", label)
    label = torch.Tensor(label).long()
    print("numel() labels   :", label.numel())
    print("label shape    :", shape(label))
    return (sequence, label)

代码输出为:

>>label before tensor 0  (This is my encoded label)
      >>numel() labels   : 0
      >>label shape    : torch.Size([0])

为什么我的标签Tensor是空的?

nxowjjhe

nxowjjhe1#

因为torch.Tensor期望一个数组(在这种情况下,这个数组成为基础值)或几个int s,这将是Tensor的大小,因此torch.Tensor(0)示例化大小为0的Tensor。
您可以使用torch.Tensor([0])torch.tensor(0),我不知道为什么这两个对象的行为方式不同,但我建议使用tensor(不大写),因为它有更好的文档(Tensor似乎是C端口的一部分)
编辑:找到this useful thread about their difference

相关问题