在 pytorch 中绘制训练和验证损失图

2024-02-12

我正在使用 pytorch 来训练我的 CNN 网络。我想绘制训练和验证损失曲线以可视化模型性能。如何绘制两条曲线?

我有下面的代码

# create a function (this my favorite choice)
def RMSELoss(predicted,target):
    return torch.sqrt(torch.mean((predicted-target)**2))

criterion = RMSELoss

# loss = torch.sqrt(criterion(x, y))
optimizer = torch.optim.Adam(model.parameters(), lr=0.0001)
epochs = 300

n_total_steps = len(train_dataset)

trainingEpoch_loss = []
validationEpoch_loss = []

for epoch in range(epochs):
    step_loss = []
    model.train()
    for i, data in enumerate(train_dataset):
        feature,target = data['data'].type(torch.FloatTensor),torch.tensor(data['target']).type(torch.FloatTensor)
         
        # Clear the gradients
        optimizer.zero_grad()
        # Forward Pass
        outputs = model(feature)
        # Find the Loss
        training_loss = criterion(outputs, target)
        # Calculate gradients
        training_loss.backward()
        # Update Weights
        optimizer.step()
        # Calculate Loss
        step_loss.append(training_loss.item())
        if (i+1) % 1 == 0:
            print (f'Epoch [{epoch+1}/{epochs}], Step [{i+1}/{n_total_steps}], Loss: {training_loss.item():.4f}')
    trainingEpoch_loss.append(np.array(step_loss).mean())
 
    model.eval()     # Optional when not using Model Specific layer
    for i, data in enumerate(val_dataset):
        validationStep_loss = []
        feature,target = data['data'].type(torch.FloatTensor),torch.tensor(data['target']).type(torch.FloatTensor)
        
        # Forward Pass
        outputs = model(feature)
        # Find the Loss
        validation_loss = criterion(outputs, target)
        # Calculate Loss
        validationStep_loss.append(validation_loss.item())
    validationEpoch_loss.append(np.array(validationStep_loss).mean())

你能让我知道我做得对还是错吗? 另请让我知道如何绘制训练和验证损失?


你正确地收集了你的纪元损失trainingEpoch_loss and validationEpoch_loss列表。 现在,训练结束后,添加代码来绘制损失:

from matplotlib import pyplot as plt
plt.plot(trainingEpoch_loss, label='train_loss')
plt.plot(validationEpoch_loss,label='val_loss')
plt.legend()
plt.show

阅读 matplotlib 文档以获取更多奇特的绘图功能。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 pytorch 中绘制训练和验证损失图 的相关文章

  • Pytorch ValueError:优化器得到一个空参数列表

    当尝试创建神经网络并使用 Pytorch 对其进行优化时 我得到了 ValueError 优化器得到一个空参数列表 这是代码 import torch nn as nn import torch nn functional as F fro
  • Emmeans 连续自变量

    我想解释一下Type f with Type space实验的内容和速率Exhaustion product和定量变量Age 这是我的数据 res structure list Type space structure c 2L 2L 2L
  • JavaScript 验证国际字符的问题

    我们用优秀的jQuery 验证器插件 http bassistance de jquery plugins jquery plugin validation 在 Stack Overflow 上 在将输入提交到服务器之前对输入进行客户端验证
  • 我的 ViewModel 列表中每个项目的数据验证

    要使用正则表达式进行验证 我通常这样做 In my ViewModel RegularExpression MyRegex ErrorMessageResourceName MyErrorMessage public string MyFi
  • 如何在 Angular 2 中添加表单验证模式?

    我有一个简单的表单 需要验证输入的开头和结尾是否不是空格 在 HTML5 中 我将这样做
  • 如何强制 matplotlib 将 x 轴上的值显示为整数

    代码如下 plt ticklabel format style plain axis x useOffset False plt plot range 1 3 logger acc plt xlabel Epochs plt ylabel
  • 实体框架验证的单元测试

    我正在尝试创建一个单元测试来验证实体框架对象 我找到了这个链接 https stackoverflow com a 11514648 2486661 https stackoverflow com a 11514648 2486661但对我
  • 将日期添加到日历热图 R

    I m plotting a calender heat map using Paul Bleicher s calenderHeat R code https raw githubusercontent com iascchen VisH
  • ASP.NET Core [要求] 不可为 null 的类型

    Here https stackoverflow com questions 6662976 required attribute for an integer value 提出了如何验证不可为空的必需类型的问题 在我的情况下 提供的使字段
  • 使用 Seaborn FacetGrid 绘制相关热图

    我正在尝试创建一个带有热图的图像 分别表示每个标签的数据点特征的相关性 使用seaborn 我可以为单个类创建热图 如下所示 grouped df groupby target sns heatmap grouped get group C
  • 有没有办法离线将多个 Plotly HTML 文件合并/嵌入到一个页面/HTML 文件中?

    我正在尝试将多个图表合并成一个 HTML 报告来发送 问题是我真的不认为子图是最好的主意 因为图表相对不相关 不同的 X Y 轴 我所需要做的只是将图表附加到 1 个 HTML 文件中 有一个指南解释了如何使用绘图 URL 来完成此操作 但
  • Julia:如何使用 PyPlot 创建不同大小的子图?

    我想创建一个包含多个绘图的图形 不过我希望能够使每个图具有不同的大小 例如 我希望第一个子图的宽度大约是第二个子图的两倍 我希望做这样的事情 using PyPlot a rand 500 900 b rand 500 400 notice
  • 使用java进行JSON模式验证[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在为返回 JSON 对象的 java webapp 编写一些验收测试 我想验证返回的 JSON 是否针对架构进行验证 任何人都可以建议
  • ASP.NET 的电子邮件地址验证

    使用什么来验证 ASP NET 表单上的电子邮件地址 我想确保它不包含 XSS 漏洞 这是 ASP NET 1 1 ASP NET Web 表单上发布的任何脚本标记都会导致您的网站抛出未处理的异常 您可以使用 asp 正则表达式验证器来确认
  • Pytorch GPU 使用率低

    我正在尝试 pytorch 的例子https pytorch org tutorials beginner blitz cifar10 tutorial html https pytorch org tutorials beginner b
  • Seaborn:带有背景颜色的图例

    以下问题解释了如何更改图例的背景颜色 matplotlib 图例背景颜色 https stackoverflow com questions 19863368 matplotlib legend background color 但是 如果
  • 如何在 PHP 中验证小数

    如何在 PHP 中验证十进制数字 我查看了 is numeric 但这对我不起作用 bool is numeric 混合变量 查找给定变量是否为 数字 数字字符串包括 可选符号 任意数量的数字 可选的小数部分和可选的 指数部分 因此 012
  • JS jQuery - 检查值是否在数组中

    我更喜欢 PHP 而不是 JS 我认为我的问题更多是语法问题 我有一个小的 jQuery 来 验证 并检查输入值 它适用于单个单词 但我需要数组 我正在使用inArray jQuery 的 var ar value1 value2 valu
  • 如何在 CQRS 中处理基于集合的一致性验证?

    我有一个相当简单的域模型 涉及一系列Facility聚合根 鉴于我使用 CQRS 和事件总线来处理从域引发的事件 您如何处理集合的验证 例如 假设我有以下需求 Facility必须有一个唯一的名称 由于我在查询端使用最终一致的数据库 因此在
  • R:为绘图标题、轴标签或图例创建拉丁语/希腊语表达向量

    我想合并拉丁文和希腊文文本的向量以生成绘图标题 轴标签 图例条目等 我在下面提供了一个简单的示例 我不知道如何以原始形式呈现希腊字母 我尝试过各种组合expression parse and apply to the paste命令 但我无

随机推荐

  • 强制 symbolicatecrash 使用特定的 .app 和 .dSYM 文件?

    我有一个来自我的应用程序的临时版本的 crash 日志 symbolicatecrash 拒绝对其进行符号化 我已经应用 patch 删除 die 命令 https github com chrispix symbolicatecrash
  • TensorFlow 估计器的类数没有变化

    我尝试对 MNIST 数据集使用张量流估计器 由于某种原因它一直说我的n classes即使它是 10 也被设置为 1 import tensorflow as tf import numpy as np from tensorflow e
  • 是否可以在运行时创建绑定重定向?

    应用程序启动后 是否有办法创建适用于所有未来程序集加载的绑定重定向 抱歉回复旧帖子 但这个博客对这个问题有更好的答案 希望有人觉得它有用 我的用例 从经典 ASP 应用程序调用的 COM 互操作程序集执行绑定重定向 http blog sl
  • 将自定义函数应用于图像中每个像素的快速方法

    我正在寻找一种更快的方法来将自定义函数应用于图像 我用它来删除蓝色背景 我有一个函数可以计算每个像素与背景中大约蓝色的距离 带有循环的原始代码如下所示 def dist to blue pix rdist 76 pix 0 gdist 15
  • 轨道:distance_of_time_NOT_in_words

    As in distance of time Time now Time tomorrow days 1或类似的规定 如果没有 实现这一目标的好方法是什么 我知道有 from now 但为什么没有 from whenever 呢 我不知道内
  • 如何在 C++ 中将多维数组传递给没有内部维度的函数? [复制]

    这个问题在这里已经有答案了 我想知道是否有办法说通过这个例如double MyArray 2 0 1 0 8 0 4 0 6 像这样的函数void MyFunction double myArray 不用说这个void MyFunction
  • 快速将 Memset 设置为 UnsafeMutablePointer

    我遇到了类型变量的挑战UnsafeMutablePointer
  • ActiveAdmin:如何保持用户密码不变?

    我在 Rails 应用程序中使用 ActiveAdmin 作为管理后端 基本上 我有一个admin user and a user模型 当我从管理员帐户创建新用户时 我指定了电子邮件和密码 这是可以的 假设我想修改用户的电子邮件而不是密码
  • R:绘图未完全加载

    我正在使用 R 编程语言 我试图在这里遵循本教程 https plotly com r parallel coordinates plot https plotly com r parallel coordinates plot 我正在尝试
  • Ant + Vista 64:“无法找到tools.jar”(jre/jdk 冲突?)

    我正在尝试在 vista 64 环境中使用 ant 来构建一些 docbook xml 文件 但是 我无法解决此错误消息 有人有建议吗 C Users 罗伯特管理员 gt ant 无法找到tools jar 预计在 C Program Fi
  • 在 WPF 中自定义上下文菜单

    我这里有一个项目 需要在 WPF 应用程序中自定义上下文菜单 其中一个按钮将放置在所有菜单项的底部 但是 如果我通过 XAML 添加按钮 它将显示为上下文菜单中集合中的另一个项目 并且鼠标悬停突出显示将对其进行操作 我希望将上下文菜单调整为
  • Foreach 语句无法对“object”类型的变量进行操作,因为“object”不包含“GetEnumerator”的公共定义

    我试图弄清楚如何通过 API 访问对象中的值 但运气不佳 有一些文档 但不多 我可以访问一些信息 但我要查找的信息存在于该软件正在使用的数据库的关键字字段中 我可以打印出对象类型 但不能打印出实际对象中的值 这是我的代码 public cl
  • 如何向 JTextArea 添加拼写检查?

    我有一个小型 Java 应用程序 它有一个 JTextArea 用户可以在其中输入文本 我想向该组件添加拼写检查功能 类似于 Microsoft Word 的方式 即拼写错误的单词带有下划线 当用户右键单击带下划线的单词时 会显示带有更正的
  • 如何在 zip 文件中找到“中央目录”的开头?

    维基百科对 ZIP 文件格式有很好的描述 http en wikipedia org wiki ZIP file format 但 中央目录 结构让我感到困惑 具体来说是这样的 这种顺序允许一次创建 ZIP 文件 但通常通过首先在最后读取中
  • 如何在 Flutter 中发送或接收 xml 文件?

    我可以使用 Flutter 发送和接收 JSON 字符串数据 但我找不到任何如何使用 Flutter 发送和接收 xml 文件的信息 我正在寻找很好的文档和基本的实践示例 有什么帮助吗 感谢 G nterZ chbauer 我设法在 Flu
  • 从 QT5 中的 QPixmap 获取 HBITMAP (Windows)

    现在 QPixmap toWinHBITMAP 已被弃用 我找不到从 QPixmap 或 QImage 获取 HBITMAP 的方法 谷歌搜索 我发现有一个名为 qt pixmapToWinHBITMAP 的函数 它似乎可以满足我的需要 但
  • 是否无法检查案例陈述条件中的列表项目?

    我正在尝试检查 Oracle 10g 中 case 语句的条件部分中的项目列表是否包含特定数字 我明白了ORA 00936 missing expression虽然错误 我正在尝试做类似以下的事情 Select case some colu
  • Git包文件入口格式

    My understanding of the Git pack file format is something like 其中表是32位宽 前三个32位字是包文件头 最后一行 32 位是条目的前 4 个字节 据我了解 条目的大小由带有
  • 在堆表上,非聚集索引使用什么作为指向行的指针?

    选择您的 SQL Server 版本 如果版本之间发生了更改 请注明 如果您知道 建一个表 在 1 列或多列上添加非聚集索引 如果我可以转储叶块 我会找到什么作为指向表中包含数据的行的指针 它使用行 ID 它基本上是数据库中行的物理地址 位
  • 在 pytorch 中绘制训练和验证损失图

    我正在使用 pytorch 来训练我的 CNN 网络 我想绘制训练和验证损失曲线以可视化模型性能 如何绘制两条曲线 我有下面的代码 create a function this my favorite choice def RMSELoss