将变量变成火炬张量。之后张量为空/没有元素
Turning variable into a torch Tensor. Afterwards tensor is empty / has no element
以下是我的代码。 “序列”是我的训练数据,格式为 [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 bevore tensor 0 (This is my encoded label)
>>numel() labels : 0
>>label shape : torch.Size([0])
为什么我的标签张量是空的?
因为 torch.Tensor
需要一个数组(在这种情况下,这个数组成为基础值)或几个 int
s,这将是张量的大小。因此 torch.Tensor(0)
实例化了一个大小为 0 的张量。
您可以使用 torch.Tensor([0])
或 torch.tensor(0)
。我不知道为什么这两个对象的行为方式不同,但我建议使用 tensor
(不大写),因为它有更好的记录(Tensor
似乎是 C 的一部分端口)
编辑:找到
以下是我的代码。 “序列”是我的训练数据,格式为 [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 bevore tensor 0 (This is my encoded label)
>>numel() labels : 0
>>label shape : torch.Size([0])
为什么我的标签张量是空的?
因为 torch.Tensor
需要一个数组(在这种情况下,这个数组成为基础值)或几个 int
s,这将是张量的大小。因此 torch.Tensor(0)
实例化了一个大小为 0 的张量。
您可以使用 torch.Tensor([0])
或 torch.tensor(0)
。我不知道为什么这两个对象的行为方式不同,但我建议使用 tensor
(不大写),因为它有更好的记录(Tensor
似乎是 C 的一部分端口)
编辑:找到