小编tha*_*toz的帖子

PyTorch:torch.LongTensor 类型未实现 _thnn_nll_loss_forward

当尝试使用 PyTorch 创建模型时,当我尝试实现损失函数时nll_loss,它抛出以下错误

RuntimeError: _thnn_nll_loss_forward is not implemented for type torch.LongTensor 
Run Code Online (Sandbox Code Playgroud)

我创建的拟合函数是:

for epoch in tqdm_notebook(range(1, epochs+1)):
    for batch_idx, (data, targets) in enumerate(train_loader):
        optimizer.zero_grad()
        net.float()
        output = net(data)
        output_x = output.argmax(dim=2) #to convert (64,50,43) -> (64, 50)
        loss = F.nll_loss(output_x, targets)
        loss.backward()
        optimizer.step()
        if batch_idx % 100 == 0:
            print('Train epochs: {} [{}/{} ({:.0f}%)]\tLoss: {:.6f}'.format(
                epoch, batch_idx*len(data), len(ds.data),
                100.*batch_idx / len(ds), loss.item()
            ))
Run Code Online (Sandbox Code Playgroud)

其中输出和目标的形状是(64, 50),并且 dtypes 是torch.int64两者的。

python machine-learning computer-vision pytorch loss-function

5
推荐指数
1
解决办法
6230
查看次数