【深度学习实战(2)】如何使用matplotlib.pyplot模块记录自己的训练,验证损失

一、matplotlib库

在我们自己训练模型时,常常会使用matplotlib库来绘制oss和accuracy的曲线图,帮助我们分析模型的训练表现。
matplotlib库安装:pip install matplotlib

二、代码

import matplotlib.pyplot as plt
import torch
import torch.optim as optim  # 导入优化器模块#------------------------------------------------------------------#
#   定义损失函数
#------------------------------------------------------------------#
def loss_fn(y_true, y_pred):return torch.mean((y_true - y_pred)**2)#------------------------------------------------------------------#
#   定义模型
#------------------------------------------------------------------#
model = torch.nn.Linear(10, 1)#------------------------------------------------------------------#
#   定义训练,验证数据
#------------------------------------------------------------------#
x_train = torch.randn(1000, 10)
y_train = torch.randn(1000, 1)
x_val = torch.randn(1000, 10)
y_val = torch.randn(1000, 1)#------------------------------------------------------------------#
#   定义优化器
#------------------------------------------------------------------#
optimizer = optim.Adam(model.parameters(), lr=0.001)  # 使用 Adam 优化器,学习率为 0.001#------------------------------------------------------------------#
#   定义损失函数
#------------------------------------------------------------------#
train_loss_list = []
val_loss_list = []#------------------------------------------------------------------#
#   开始训练
#------------------------------------------------------------------#
for epoch in range(10000):# ------------------------------------------------------------------##   训练# ------------------------------------------------------------------## ------------------------------------------------------------------##   前向传播# ------------------------------------------------------------------#y_pred = model(x_train)# ------------------------------------------------------------------##   计算损失# ------------------------------------------------------------------#training_loss = loss_fn(y_train, y_pred)train_loss_list.append(training_loss.item())# ------------------------------------------------------------------##   反向传播# ------------------------------------------------------------------#training_loss.backward()# ------------------------------------------------------------------##   更新参数# ------------------------------------------------------------------#optimizer.step()# ------------------------------------------------------------------##   展示训练损失# ------------------------------------------------------------------#if epoch % 10 == 0:print(f"epoch {epoch}:training loss {training_loss.item()}")# ------------------------------------------------------------------##   验证# ------------------------------------------------------------------## ------------------------------------------------------------------##   前向传播# ------------------------------------------------------------------#y_pred = model(x_val)# ------------------------------------------------------------------##   计算损失# ------------------------------------------------------------------#val_loss = loss_fn(y_val, y_pred)val_loss_list.append(val_loss.item())# ------------------------------------------------------------------##   展示验证损失# ------------------------------------------------------------------#if epoch % 10 == 0:print(f"epoch {epoch}:validate loss {val_loss.item()}")# ------------------------------------------------------------------#
#   记录训练,验证损失
# ------------------------------------------------------------------#
plt.plot(train_loss_list,color="red",label="training_loss")
plt.plot(val_loss_list,color="blue",label="val_loss")
plt.xlabel("epoch")
plt.ylabel("loss")
plt.legend(loc='lower right')
plt.show()

运行结果
在这里插入图片描述
查看
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/307318.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024年蓝桥杯40天打卡总结

2024蓝桥杯40天打卡总结 真题题解其它预估考点重点复习考点时间复杂度前缀和二分的两个模板字符串相关 String和StringBuilderArrayList HashSet HashMap相关蓝桥杯Java常用算法大数类BigInteger的存储与运算日期相关考点及函数质数最小公倍数和最大公约数排序库的使用栈Math类…

Redis系列之基于Linux单机安装

Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式、可选持久性的键值对(Key-Value)存储数据库,并提供多种语言的 API。最近学习需要用到Redis,所以就去Linux服务器上部署一个,做下记录,方便…

【网站项目】数学辅导微信小程序

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

Ollama、FastGPT大模型RAG结合使用案例

参考: https://ollama.com/download/linux https://doc.fastai.site/docs/intro/ https://blog.csdn.net/m0_71142057/article/details/136738997 https://doc.fastgpt.run/docs/development/custom-models/m3e/ Ollama作为后端大模型加载运行 FastGPT作为前端页面聊天集成RA…

『FPGA通信接口』汇总目录

Welcome 大家好,欢迎来到瑾芳玉洁的博客! 😑励志开源分享诗和代码,三餐却无汤,顿顿都被噎。 😭有幸结识那个值得被认真、被珍惜、被捧在手掌心的女孩,不出意外被敷衍、被唾弃、被埋在了垃圾堆。…

【IR-SDE】Image Restoration SDE项目演示运行app.py

背景: code:GitHub - Algolzw/image-restoration-sde: Image Restoration with Mean-Reverting Stochastic Differential Equations, ICML 2023. Winning solution of the NTIRE 2023 Image Shadow Removal Challenge. paper: Official PyTorch Implementations o…

ppt技巧:如何将Word文档大纲中导入到幻灯片中?

在PowerPoint中,将Word文档的大纲导入到新的幻灯片是一种非常实用的技巧。以下是详细的步骤: 首先,需要打开PowerPoint软件并打开原始的幻灯片文件。 在PowerPoint的顶部【开始】菜单栏中,找到并点击“新建幻灯片”按钮&#xff0…

最新常见的图数据库对比,选型,架构,性能对比

图数据库排名 地址:https://db-engines.com/en/ranking/graphdbms 知识图谱查询语言 SPARQL、Cypher、Gremlin、PGQL 和 G-CORE 语法 / 语义 / 特性SPARQLCypherGremlinPGQLG-CORE图模式匹配查询语法CGPCGPCGP(无可选)1CGPCGP语义子图同态、包 2无重复边、包 2子…

Django Rest Framework的序列化和反序列化

DRF的序列化和反序列化 目录 DRF的序列化和反序列化Django传统序列化Django传统反序列化安装DRF序列化器serializers序列化反序列化反序列化保存instance和data CBV和APIView执行流程源码解析CBV源码分析APIView源码分析 DRF的Request解析魔法方法__getattr__ 什么是序列化&…

动力学-坐标系

文章目录 1 转动坐标系2 运动坐标系3 刚体运动参数• 拉格朗日建立机器人动力学方程需用齐次变换矩阵,计算效率低。优点是可以写成状态方程的形式,便于运用控制方法。 • 牛顿—欧拉动力学方程可得到一组正向和反向递推方程,显著优点是可把驱动力矩的计算时间缩短到可实时控…

物联网实战--驱动篇之(五)TEA和AES加密算法

目录 一、前言 二、TEA算法 三、AES算法 四、加解密测试 五、安全性保障 一、前言 物联网的安全性是经常被提及的一个点,如果你的设备之间通讯没有加密的话,那么攻击者很容易就能获取并解析出报文的协议,从而根据攻击者的需要进行设备操…

Redis--16--Spring Data Redis

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 Spring Data Redishttps://spring.io/projects/spring-data-redis 1.依赖2.RedisTemplate3.案例 序列化1.默认是 JdkSerializationRedisSerializer2.添加Redis配置文…

JRT多平台初始化程序

这么多年客户端一直只做Windows,所以初始化程序用C#写个Exe,按网站生成的下载清单文件一个个下载和部署客户端环境是可以的。新的由于设计目标就是支持多平台的,所以需要重新考虑初始化设计。 介绍和演示视频 设计目标有以下: 1…

软件开发安全备受重视,浙江某运营商引入CWASP认证课程,

​浙江省某大型运营商是一家实力雄厚、服务优质的通信运营商,致力于为全省用户提供优质、高效的通信服务。数字时代,该运营商顺应信息能量融合发展趋势,系统打造以5G、算力网络、能力中台为重点的新型信息基础设施,夯实产业转型升…

idea keymap用eclipse的相关快捷键

idea快捷键用eclipse的方式 CtrlShiftR 搜索文件 shiftshift 全部文件/类搜索 CtrlH 全局搜索 CtrlO 快速打开Outline大纲视图 ctrle 查看recent窗口文件 ctrlt 快速进入接口的实现类 ctrlshiftf 格式化代码 altshiftr 变量或函数的重命名 ctrlshifto 移除无用的头文…

C/C++内存泄漏及检测

“该死系统存在内存泄漏问题”,项目中由于各方面因素,总是有人抱怨存在内存泄漏,系统长时间运行之后,可用内存越来越少,甚至导致了某些服务失败。内存泄漏是最难发现的常见错误之一,因为除非用完内存或调用…

【LeetCode】二叉树类题目详解

二叉树 二叉树的理论基础 二叉树是结点的度数之和不超过2的树,二叉树总共有五种基本形态 二叉树的种类主要有: 满二叉树完全二叉树 二叉树的存储方式 顺序存储链式存储 二叉树的遍历方式 先序遍历(深度优先搜索)中序遍历&…

Python单元测试pytest捕获日志输出

使用pytest进行单元测试时,遇到了需要测试日志输出的情况,查看了文档 https://docs.pytest.org/en/latest/how-to/capture-stdout-stderr.html https://docs.pytest.org/en/latest/how-to/logging.html 然后试了一下,捕捉logger.info可以用…

微信小程序 uniapp+vue.js医疗在线问诊挂号系统4oy17

预约挂号系统的逐渐发展,进一步方便了广大用户,使其可以更方便、快捷地预约挂号,并且也有效地防止号贩子“倒号”,使用户预约挂号更公平,然而现有预约挂号系统或多或少有所欠缺 小程序前端框架:uniapp 小程…

7、configMap

1、configMap是什么 类似与pod的配置中心,不会因为pod的创建销毁,相关配置发生改变 pod定义硬编码意味着需要有效区分⽣产环境与开发过程中的pod 定义。为了能在多个环境下复⽤pod的定义,需要将配置从pod定义描 述中解耦出来。 2、向容器中…