pytorch绘制训练过程中的曲线图

因为在训练的过程中想要输出一下accuracy和loss曲线,因此找到了一篇比较好的博客,原文链接:https://blog.csdn.net/tequilaro/article/details/81841748
但是过程中出现了问题,在尝试了一天之后终于解决了~

PyTorch

主要思想就是首先要定义两个数组,然后将每次迭代时模型的准确率和损失率传入到数组中,这里可以利用拼接函数进行拼接。然后在利用绘制图像的函数将其绘制。
代码如下:
首先定义两个数组:
在这里插入图片描述
在这里插入图片描述
#我这里迭代了300次,所以x的取值范围为(0,300),然后再将每次相对应的准确率以及损失率附在x上
在这里插入图片描述
但是在绘制的过程中遇见了一个问题,报错显示x与y的维度不一样,尝试了各种方法,甚至将y也改成了range(0,5).(在尝试过程中我先将epoch设置成的5,这样会节省很多时间的哦~)虽然知道这个方法不对,但还是想看到输出结果.
好了,最大的问题就是缩进问题,真的是太坑了~
一定要先将所有的数值全部放在数组里之后再画,不然维数永远不可能相等~
缩进!缩进!缩进!!

  • 1
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
### 回答1: 在 PyTorch 绘制 loss 和 acc 曲线可以使用 matplotlib 库。首先,需要在训练过程记录 loss 和 acc 的值,然后使用 matplotlib 的 plot() 函数绘制曲线。下面是一个简单的例子: ```python import matplotlib.pyplot as plt # 记录训练过程的loss和acc loss_history = [] acc_history = [] # ...在训练过程... for data, target in dataloader: # ... loss_history.append(loss.item()) acc_history.append(acc.item()) # 绘制loss曲线 plt.plot(loss_history, label='loss') # 绘制acc曲线 plt.plot(acc_history, label='acc') plt.legend() plt.show() ``` 这将在窗口显示一个曲线图,其 x 轴表示训练步数,y 轴表示 loss 和 acc。 另外,还可以使用第三方库如 Visdom,tensorboardX 等来绘制loss,acc曲线。 ### 回答2: PyTorch是一种流行的深度学习框架,主要用于构建神经网络和实现深度学习模型。训练神经网络时,我们通常需要跟踪模型的loss值和准确率(accuracy)。这些指标可以通过绘制loss和acc曲线来可视化,以便更好地了解模型的训练过程和性能。 在PyTorch,我们可以使用Matplotlib库来绘制loss和acc曲线。首先,我们需要在训练过程跟踪loss和acc值。这可以通过在训练循环保存这些值来实现。例如,我们可以使用以下代码来跟踪loss和acc: ``` train_losses = [] train_accs = [] for epoch in range(num_epochs): # 训练模型 # ... # 计算loss和acc train_loss = calculate_loss(...) train_acc = calculate_accuracy(...) train_losses.append(train_loss) train_accs.append(train_acc) ``` 然后,我们可以使用Matplotlib库来将这些值绘制成曲线。以下是一个例子: ``` import matplotlib.pyplot as plt # 绘制loss曲线 plt.plot(train_losses, label='train') plt.legend() plt.xlabel('Epoch') plt.ylabel('Loss') plt.show() # 绘制acc曲线 plt.plot(train_accs, label='train') plt.legend() plt.xlabel('Epoch') plt.ylabel('Accuracy') plt.show() ``` 这将会绘制出loss和accuracy的曲线,如下所示: ![loss_acc_curve](https://img-blog.csdn.net/20180112171409158?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbHVhbmdfd2Vi/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/85/img-hover) 这些曲线可以帮助我们了解模型的训练过程和性能表现。例如,我们可以观察loss曲线是否出现过拟合或者欠拟合的情况,以及acc曲线的上升趋势是否饱和。如果loss曲线不平滑或者acc曲线没有到达预期的水平,那么我们可能需要修改模型的架构或者训练算法,以获得更好的性能。 ### 回答3: PyTorch 是一种广泛使用的深度学习框架,它提供了许多便捷的工具和库,可以实现许多深度学习任务。在 PyTorch ,通常需要对模型的训练过程进行监控和可视化,其最常使用的方法就是绘制 loss 和 accuracy 曲线。 绘制 loss 曲线是为了评估模型的训练效果,如果 loss 的值不断下降,说明模型正在学习正确的特征和规律。而 accuracy 曲线则用于评估模型的性能,如果 accuracy 曲线逐渐升高,则说明模型的性能在不断提升。 在 PyTorch ,可以利用 Matplotlib 库对 loss 和 accuracy 进行可视化。首先,需要在训练过程记录训练的 loss 和 accuracy 值。在模型训练过程,可以使用 TensorBoard 或 Matplotlib 等工具实时记录 loss 和 accuracy 值。 下面是绘制 loss 和 accuracy 曲线的代码示例: ```python import matplotlib.pyplot as plt # 记录训练过程的 loss 和 accuracy train_losses = [] train_accuracies = [] # 模型训练部分代码 # ... # 绘制 loss 曲线 plt.plot(range(len(train_losses)), train_losses) plt.title('Training Loss') plt.xlabel('Iterations') plt.ylabel('Loss') plt.show() # 绘制 accuracy 曲线 plt.plot(range(len(train_accuracies)), train_accuracies) plt.title('Training Accuracy') plt.xlabel('Iterations') plt.ylabel('Accuracy') plt.show() ``` 在上述代码,train_losses 和 train_accuracies 记录了训练过程的 loss 和 accuracy 值,然后使用 Matplotlib 库绘制出相应的曲线。可以通过改变 Matplotlib 库的参数来实现不同的绘图效果,如调整曲线的颜色、线宽、标签等。 绘制曲线是一种很好的监控和分析模型训练过程的方法。在训练过程,可以及时排查模型可能存在的问题,也可以对不同的模型和参数进行比较和优化,从而提高深度学习模型的训练效果和性能。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值