小编Mug*_*ees的帖子

RuntimeError:预期的标量类型为 Long 的对象,但参数 #2 'target' 的标量类型为 Float

我在计算神经网络的损失时遇到了问题。我不确定为什么程序需要一个长对象,因为我所有的张量都是浮点形式。我查看了具有类似错误的线程,解决方案是将张量转换为浮点数而不是长整数,但这在我的情况下不起作用,因为我的所有数据在传递到网络时已经是浮点数形式。

这是我的代码:

# Dataloader
from torch.utils.data import Dataset, DataLoader

class LoadInfo(Dataset):    
    def __init__(self, prediction, indicator):  
        self.prediction = prediction
        self.indicator = indicator
    def __len__(self):
        return len(self.prediction)
    def __getitem__(self, idx):
        data = torch.tensor(self.indicator.iloc[idx, :],dtype=torch.float)
        data = torch.unsqueeze(data, 0)
        label = torch.tensor(self.prediction.iloc[idx, :],dtype=torch.float)
        sample = {'data': data, 'label': label} 
        return sample

# Trainloader
test_train = LoadInfo(train_label, train_indicators)
trainloader = DataLoader(test_train, batch_size=64,shuffle=True, num_workers=1,pin_memory=True) 

# The Network
class NetDense2(nn.Module):

    def __init__(self):
        super(NetDense2, self).__init__()
        self.rnn1 = nn.RNN(11, 100, 3)  
        self.rnn2 = nn.RNN(100, 500, 3)  
        self.fc1 = …
Run Code Online (Sandbox Code Playgroud)

python floating-point torch recurrent-neural-network pytorch

10
推荐指数
1
解决办法
3万
查看次数