При попытке создать модель с использованием PyTorch, когда я пытаюсь реализовать функцию потерь nll_loss
, она выдает следующую ошибку
RuntimeError: _thnn_nll_loss_forward is not implemented for type torch.LongTensor
Созданная мной функция подгонки:
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()
))
Там, где форма выходных данных и целей равна (64, 50) , а dtypes для обоих * torch.int64
.