下面是我的代码,“序列”是我的训练数据,格式为[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是空的?
1条答案
按热度按时间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