参考Pytorch训练网络模型过程中Loss为负值的问题及其解决方案 - 云+社区 - 腾讯云
1. 问题描述
在复现论文的过程中,遇到了训练模型Loss一直为负的情况。
程序主要通过深度学习实现一个分类任务。编程与debug过程全部在windows10系统,Pycharm2018v1.4的IDE下完成,主要框架为pytorch 1.2.0。复现过程中采用了交叉熵损失函数计算Loss。训练过程中输出信息如下:
输出部分的代码段:
for batch_idx, (data, target) in enumerate(train_loader):
data, target = data.to(device), target.to(device)
optimizer.zero_grad()
output = model(data)
loss = F.nll_loss(output, target.squeeze())
loss.backward()
optimizer.step()
if batch_idx % log_interval == 0:
print("Train Epoch: {} [{}/{} ({:0f}%)]\tLoss:{:.6f}".format(
epoch, batch_idx * len(data), len(train_loader.dataset),
100.