【发布时间】:2020-01-02 13:14:53
【问题描述】:
我正在做一些关于使用 PyTorch 进行图像分类的作业。为此,我访问了以下链接:https://github.com/Bjarten/early-stopping-pytorch/blob/master/MNIST_Early_Stopping_example.ipynb 并获得了一些与训练损失和验证损失相关的结果
[ 1/10] train_loss: 1.56952 valid_loss: 1.54557
Validation loss decreased (inf --> 1.545571). Saving model ...
[ 2/10] train_loss: 1.52198 valid_loss: 1.50932
Validation loss decreased (1.545571 --> 1.509324). Saving model ...
[ 3/10] train_loss: 1.48958 valid_loss: 1.48514
Validation loss decreased (1.509324 --> 1.485136). Saving model ...
[ 4/10] train_loss: 1.46960 valid_loss: 1.46938
Validation loss decreased (1.485136 --> 1.469381). Saving model ...
但问题是,每当我尝试绘制损失曲线时,它都不会显示任何内容。
我希望我的曲线像the one in this picture。 这是我用来绘制这条曲线的代码:
# visualize the loss as the network trained
fig = plt.figure(figsize=(10, 8))
plt.plot(range(1, len(train_loss) + 1), train_loss, label='Training Loss')
plt.plot(range(1, len(valid_loss) + 1), valid_loss, label='Validation Loss')
# find position of lowest validation loss
minposs = valid_loss.index(min(valid_loss)) + 1
plt.axvline(minposs, linestyle='--', color='r', label='Early Stopping Checkpoint')
plt.xlabel('epochs')
plt.ylabel('loss')
plt.ylim(0, 0.5) # consistent scale
plt.xlim(0, len(train_loss) + 1) # consistent scale
plt.grid(True)
plt.legend()
plt.tight_layout()
plt.show()
fig.savefig('loss_plot.png', bbox_inches='tight')
这里是训练损失和测试损失的长度值
len of train loss: 1
train loss :[1.6059992909431458]
【问题讨论】:
-
您可以打印(并在此处发布)您的
plot函数的输入吗?那是range(1, len(train_loss) + 1)和train_loss? -
@Jatentaki,我已经更新了我的帖子。请看一下!
-
您已更新您的帖子,但未包含我要求的信息。我问你
print你传递给plt.plot的确切值以及它们的计算方式(可能)无关 -
@Jatentaki,抱歉之前的更新不正确。这是我在火车损失 len 之前询问的结果:1 火车损失:[1.6059992909431458]。
标签: python-3.x matplotlib deep-learning pycharm pytorch