训练和测试的loss、accuracy等数据保存到文件并读出

首先是写文件到excel

import os.path
from openpyxl import load_workbook
import pandas as pd
import matplotlib.pyplot as pltdef write_excel(excel_name, sheet_name, value):columns = ["epoc", "train_loss", "train_acc", "test_acc"]  # 列名# 创建一个 pandas 的数据框if not os.path.exists(excel_name):  # 文件不存在,就创建一个df = pd.DataFrame(columns=columns)df.to_excel(excel_name, index=False)books = load_workbook(excel_name).sheetnames  # 得到已存在的sheet列表# 将数据框写入 Excel 文件if sheet_name not in books:  # 如果sheet_name不存在,创建with pd.ExcelWriter(excel_name, engine="openpyxl", mode="a") as writer:df = pd.DataFrame(columns=columns)df.to_excel(writer, sheet_name=sheet_name, index=False)  # header=None 参数用于追加写入时不重复写入列名# 追加一行数据workbooks = load_workbook(excel_name)  # 获取文件worksheet = workbooks[sheet_name]  # 获取工作表sheetworksheet._current_row = worksheet.max_row  # 指定最大行数worksheet.append(value)  # 添加数据workbooks.save(excel_name)  # 保存print("写入成功")#测试
excel_name = r"example_pandas.xlsx"
sheet_name = "Sheet1"
value = [1, 2, 3, 4]
write_excel(excel_name, sheet_name, value)

在这里插入图片描述

读取excel和绘图
在这里插入图片描述

绘制一个loss图,一个准确率图

def image_show(excel_name, sheet_name):dataframe = pd.read_excel(excel_name, sheet_name)  # 读取excel的地址epoc = dataframe['epoc'].values  # 读出某列的数据为一个列表train_loss = dataframe['train_loss'].values  # 读出某列的数据为一个列表train_acc = dataframe['train_acc'].values  # 读出某列的数据为一个列表test_acc = dataframe['test_acc'].values  # 读出某列的数据为一个列表plt.figure(1, dpi=300)  # 画第一个图plt.rcParams['font.sans-serif'] = ['SimHei']  # 显示中文plt.ylim([0, 2])  # 设置y轴刻度范围# plt.yticks(np.linspace(0, 2, 10))  # 设置刻度plt.xticks(range(0, 21, 2))  # 共20个值,每2个点显示一次plt.plot(epoc, train_loss, color='r', marker='', linewidth=1, linestyle='-', label="loss")  # 可以调整粗细,大小,颜色plt.title("train_loss曲线")  # 显示图名称plt.xlabel('e poc')  # 显示x轴名称plt.ylabel('loss')  # 显示y轴名称plt.legend()  # 显示标签# -------------------------------plt.figure(2, dpi=300)  # 画第二个图plt.rcParams['font.sans-serif'] = ['SimHei']  # 显示中文plt.ylim([0, 1])plt.yticks(np.linspace(0, 1, 10))plt.plot(epoc, train_acc, color='r', marker='', linewidth=1, linestyle='--', label="train_acc")plt.plot(epoc, test_acc, color='b', marker='', linewidth=1, linestyle='-', label="test_acc")plt.title("accuracy准确率")plt.xlabel('epoc')plt.ylabel('accuracy')plt.legend()plt.show()  # 显示#测试
excel_name = r"example_pandas.xlsx"
sheet_name = "Sheet1"  # 工作簿sheet的名字
image_show(excel_name, sheet_name)

在这里插入图片描述
在这里插入图片描述
行叭,学习了好半天!到这里吧

奥,对,还有一些读取excel的代码

# 参考 https://blog.csdn.net/HJ_xing/article/details/112390297、https://blog.csdn.net/rebecca_cao/article/details/134899345
# path = r"train_info.xlsx"
# sheet_name = "Sheet1"  # 工作簿sheet的名字
# dataframe = pd.read_excel(path, sheet_name)  # 读取excel的地址
# print(dataframe)
# 
# data = dataframe.values  # 获取整个工作表值数据,不包括表的标题
# data = dataframe.head(3)  # 读取前3行,包括标题
# data = dataframe.iloc[0].values  # 0表示数值第一行,不包含表头
# data = dataframe.iloc[[1, 2, 3, 4]].values  # 读取指定多行,在iloc[]里面嵌套列表指定行数
# data = dataframe.sample(3).values  # 读取df中随机3行数据(3个样本)
# data = dataframe.iloc[1, 2]  # 读取索引为[1, 2]的值,读取指定某行某列(单元格)的数据
# print(dataframe['列名称'].values)  # 读出某列的数据为一个列表
# datas = dataframe.loc[:, ['列名1', '列明2']].values  # 读所有行的列名1和列名2的值
# datas = dataframe.loc[7:9, ['step', 'train_loss']].values  # 读7-9行的列名1和列名2的值
# data = dataframe.loc[[1, 2], ['列明1', '列名2']].values  # 读取第一行第二行的列1,列2
# print("输出行号列表", dataframe.index.values)
# print("输出列标题", dataframe.columns.values)
# data = dataframe.head(3)  # 读取前3行,带标题
# step = dataframe['step'].values
# train_loss = dataframe['train_loss'].values

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

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

相关文章

跟着野火学FreeRTOS:第一段(任务延时列表)

既然是延时列表,那肯定要先定义相应的链表,延时列表的定义如下。这里定义了两条延时列表(其实就是前面小节里面提到的链表的根节点),一条是准备当记录 S y s t i c k Systick Systick周期个数的变量 x T i c k C o u n…

idea Spring Boot项目使用JPA创建与数据库链接

1.pom.xml文件中添加依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId></dependency><dependency><groupId>com.mysql</groupId><artifactId>…

创建和配置Spring MVC框架构建Web应用

1 认识Spring MVC Spring Web MVC是构建在Servlet API之上的Web框架&#xff0c;自诞生之时就被纳入了Spring框架中。其正式/官方名称为“Spring Web MVC”&#xff0c;源自其所属的模块&#xff08;spring-webmvc&#xff09;&#xff0c;但通常被称为“Spring MVC”。 1.1…

最短路径(数据结构实训)(难度系数100)

最短路径 描述&#xff1a; 已知一个城市的交通路线&#xff0c;经常要求从某一点出发到各地方的最短路径。例如有如下交通图&#xff1a; 则从A出发到各点的最短路径分别为&#xff1a; B&#xff1a;0 C&#xff1a;10 D&#xff1a;50 E&#xff1a;30 F&#xff1a;60 输…

“暂存”校验逻辑探讨

1、背景 在业务中可能会遇到这种场景&#xff0c;前端页面元素多且复杂&#xff0c;一次性填完提交耗时很长&#xff0c;中间中断面临着丢失数据的风险。针对这个问题&#xff0c;“暂存”应运而生。 那“暂存”的时候&#xff0c;是否需要对数据校验&#xff0c;如何进行校验…

【全局光照GI系统剖析_Enlighten和Progressive Lightmapper_案例分享(附带场景下载链接)_场景】

烘焙预计算 前文:续_直接和间接光照这一篇小结:Unity烘焙预计算烘焙前的场景设置1.2.Contribute GI如下图:物体的Static和面板上的Contribute GILightmap的UV模型自带Lightmap的UVUnity 自动展Lightmap的UV1.3.Meta PassMeta Pass代码如下:1.4.Light Mode模式

k8s部署 CNI 网络组件与k8s集群搭建(二)

目录 部署 CNI 网络组件 部署 flannel K8S 中 Pod 网络通信 Flannel UDP 模式的工作原理 ETCD 之 Flannel 提供说明 Flannel VXLAN 模式跨主机的工作原理 在 node01 节点上操作 在 master01 节点上操作 部署 Calico k8s 组网方案对比 Calico 主要由三个部分组成 Ca…

go 源码解读 - sync.Mutex

sync.Mutex mutex简介mutex 方法源码标志位获取锁LocklockSlowUnlock怎么 调度 goroutineruntime 方法 mutex简介 mutex 是 一种实现互斥的同步原语。&#xff08;go-version 1.21&#xff09; &#xff08;还涉及到Go运行时的内部机制&#xff09;mutex 方法 Lock() 方法用于…

网盘项目话术(0.5w字精选)

功能结构图 数据库设计总结 该项目主要就是对文件的操作&#xff0c;file表&#xff0c;file_share表。 file表主要字段&#xff1a;id&#xff0c;用户id&#xff0c;父级目录id&#xff0c;文件的地址&#xff0c;文件的封面图片地址&#xff0c;创建和修改时间。 file_sha…

Java命令行最实用的命令

Java 命令行提供了许多重要且实用的命令&#xff0c;以下是其中一些常用的命令&#xff1a; java&#xff1a;用于运行 Java 程序的命令。使用 java 命令后面跟着要执行的 Java 类名。 java MyClassjavac&#xff1a;用于编译 Java 源代码文件的命令。使用 javac 命令后面跟着要…

vue中的事件绑定的过程

Vue中事件的绑定分为两种情况&#xff1a;原生DOM事件和组件事件。 原生DOM事件 是指在模板中使用v-on或指令来给元素绑定的事件&#xff0c;如 <button click"handler">click me</button>这种事件的绑定是通过以下步骤实现的&#xff1a; 模板编译阶…

国际物流公司科普_集装箱种类区分和介绍_箱讯科技

集装箱运输的不断发展&#xff0c;为适应装载不同种类货物的需要&#xff0c;因而出现了不同种类的集装箱。今天和大家一起来总结一下。 按使用材料分类 根据箱子主体部件&#xff08;侧壁、端壁、箱顶等&#xff09;采用什么材料&#xff0c;就叫做什么材料制造的集装箱&…

TPRI-DMP平台介绍

TPRI-DMP平台介绍 TPRI-DMP平台概述 TPRI-DMP为华能集团西安热工院自主产权的工业云PaaS平台&#xff0c;已经过13年的发展和迭代&#xff0c;其具备大规模能源电力行业生产应用软件开发和运行能力。提供TPRI-DMP平台主数据管理、业务系统开发与运行、应用资源管理与运维监控…

【数据结构】C语言实现单链表的基本操作

单链表基本操作的实现 导言一、查找操作1.1 按位查找1.1.1 按位查找的C语言实现1.1.2 按位查找的时间复杂度 1.2 按值查找1.2.1 按值查找的C语言实现1.2.2 按值查找的时间复杂度 二、插入操作2.1 后插操作2.2 前插操作 三、删除操作结语 导言 大家好&#xff0c;很高兴又和大家…

C++ 之LeetCode刷题记录(三)

&#x1f604;&#x1f60a;&#x1f606;&#x1f603;&#x1f604;&#x1f60a;&#x1f606;&#x1f603; 开始cpp刷题之旅&#xff0c;多学多练&#xff0c;尽力而为。 先易后难&#xff0c;先刷简单的。 13、罗马数字转整数 罗马数字包含以下七种字符: I&#xff0c…

vue3中新增的组合式API:ref、reactive、toRefs、computed、watch、provide/inject、$ref

在 Vue3 中&#xff0c;组合式 API 是一种新的编程模式&#xff0c;它允许你更灵活地组织和重用代码。组合式 API 主要包括以下几个部分&#xff1a; ref&#xff1a;用于创建响应式数据。reactive&#xff1a;用于创建一个响应式对象。toRefs&#xff1a;将一个响应式对象转换…

ClickHouse基础知识(二):ClickHouse 安装教程

1. 准备工作 1.1 确定防火墙处于关闭状态 1.2 CentOS 取消打开文件数限制 &#xff08;1&#xff09;在 hadoop101 的 /etc/security/limits.conf 文件的末尾加入以下内容 sudo vim /etc/security/limits.conf&#xff08;2&#xff09;在 hadoop101 的/etc/security/limits.…

面试问题整理若干

一.数据库测试时关注的要点 1.数据库连接测试&#xff1a;确保数据库可以正常连接&#xff0c;并且连接稳定。 2.数据库结构测试&#xff1a;验证数据库的结构设计是否符合需求&#xff0c;包括表、字段、索引等的设计。 3.数据库数据测试&#xff1a;验证数据库中的数据是否…

Rocky9 1.28安装kubernetes

1.环境准备 二进制安装比较复杂&#xff0c;但是也比较稳定&#xff0c;适用于线上环境使用。   本笔记参考自&#xff1a;https://github.com/cby-chen/Kubernetes &#xff0c;针对文中内容&#xff0c;有部分镜像无法拉取等&#xff0c;还有一部分有点小问题&#xff0c;…

SQL小技巧5:数据去重的N种方法,总有一种你想不到!

在平时工作中&#xff0c;使用SQL语句进行数据去重的场景非常多。 今天主要分享几种数据去重的SQL写法。 假如有一张student表&#xff0c;结构如下&#xff1a; create table student( id int, name varchar(50), age int, address varchar(100)); 表中的数据…