pytorch下tensorboard的使用程序示例
作者:wf6892 发布时间:2021-10-27 01:01:16
我们都知道tensorflow框架可以使用tensorboard这一高级的可视化的工具,为了使用tensorboard这一套完美的可视化工具,未免可以将其应用到Pytorch中,用于Pytorch的可视化。这里特别感谢Github上的解决方案: https://github.com/lanpa/tensorboardX。
一、tensorboard程序实例:
1.代码
from torch.utils.tensorboard import SummaryWriter # 用于将数据写入tensorboard
import csv # 用于从本地csv中读取数据
'''从csv读取数据,用于后续显示在tensorboard中'''
fileAddr = 'models/211016_101208/reward.csv' # 待读取的文件地址
file = open(fileAddr, 'r') # 打开文件
data = csv.reader(file) # 从文件中读取数据,但此时data是{reader}格式
next(data) # 忽略数据的第一行,这是csv的表头。
'''csv数据读取完毕'''
'''将data数据写入tensorboard'''
tensorboard_logs_addr = "logs_tensorboard/211021" # 设定tensorboard文件存放的地址
writer = SummaryWriter(tensorboard_logs_addr)
for index, data1 in enumerate(data): # 开始写入文件。
# 一个图中写入多组数据,共用y轴
writer.add_scalars('adv_data/Rewards Per Episodes',
{'agent0':float(data1[0]),
'agent1':float(data1[1]),
'agent2':float(data1[2]),}, index)
# 一个图中写入一组数据
writer.add_scalar('adv_data/step number per episode', int(data1[4]), index)
# 一个图中写入一组数据
writer.add_scalar('gda_data/Rewards per episode', float(data1[3]), index)
writer.add_scalar('gda_data/step number per episode', int(data1[4]), index)
writer.close() # 完成后关闭
运行以上代码,便会在文件夹logs_tensorboard/211021中生成tensorboard数据。
2.在命令提示符中操作
# 打开命令提示符后默认在c盘,固先转换到d盘
C:\Users\wf>d:
# 进入程序所在文件夹
D:\>cd D:\04MADDPG\40_MADDPG_torch-master -UAV_FixedSpeed
# 打开tensorboard的代码
D:\04MADDPG\40_MADDPG_torch-master -UAV_FixedSpeed>tensorboard --logdir=logs_tensorboard/211021
完
说明:
tensorboard --logdir=logs_tensorboard/211021
tensorboard --logdir= 是不可更改的;
logs_tensorboard/211021 是tensorboard文件存放的地址;logs_tensorboard文件夹的上一层就是程序所在文件夹;
3.在浏览器中打开网址
http://localhost:6006/
4.效果
二、writer.add_scalar()与writer.add_scalars()参数说明
writer.add_scalar() 一副图中只有一组数据
writer.add_scalars() 一副图中有多组数据,但共用x轴
1.概述
将数据写入tensorboard只有以下代码:
from torch.utils.tensorboard import SummaryWriter
writer = SummaryWriter("tensorboard文件存放地址")
# 将数据写入tensorboard文件,规定写入的形式
writer.add_scalar() 或 writer.add_scalars()
writer.close()
2.参数说明
writer.add_scalar('TAG', Y-DATA, X-DATA)
writer.add_scalars('TAG', {'Line1':Line1-Y-DATA,
'Line2':Line2-Y-DATA,
'Line3':Line3-Y-DATA,
... ... ,}, X-DATA)
其中:
运行一次writer.add_scalar()或writer.add_scalar()生成一张图像;
如果后面运行的writer.add_scalar()的标签和前面的相同,会覆盖掉旧的图像;
参数说明:
TAG 是当前绘制图像的分类标签,可以设置2级标签;如A1/B1,A1/C1,A2/B2;
当两张图像的第一级标签相同时,两张图象会放在一行;
当两张图像的第一级标签不同时,两张图象会放在不同的组,即两张图像上下放;
Y-DATA 是图像中Y轴的数据
Line1-Y-DATA 是图像中Line1的Y轴数据
Line2-Y-DATA 是图像中Line2的Y轴数据
Line3-Y-DATA 是图像中Line3的Y轴数据
X-DATA 是图像中X轴的数据
Line1、Line2、Line3是同一张图像中,几个曲线的名称,他们共用X轴
3.writer.add_scalar()效果
4.writer.add_scalars()效果
来源:https://blog.csdn.net/wf6892/article/details/120893425


猜你喜欢
- 熟悉 C 语言的小伙伴一定对 goto 语句不陌生,它可以在代码之间随意的跳来跳去,但是好多老鸟都告诫大家,不要使用 goto,因为 got
- 程序开发一定要有开发工具,网上找了很多关于Python的开发工具,大神们在用记事本和VIM,小白都用PyCharm,我是属于小白一类的当然也
- ASP开发网页牢记注意事项 选择自 RAINMAN_NET&
- Celery简介Celery是一个简单、灵活且可靠的,处理大量消息的分布式系统,专注于实时处理的异步任务队列,同时也支持任务调度
- 1、生成器函数包含yield from表达式。2、在yield from表达式处暂停委派生成器,调用方可直接将数据发送给子生成器。3、子生成
- 当存储一个CHAR值时, Mysql会除去尾随空间, 这个行为有点让人困惑, 用一个具体的例子来看一下: 首先 ,创建一个只有一个CHAR(
- 一、中文截取:mb_substr() mb_substr( $str, $start, $length, $encoding ) $str,
- 设计师在抱怨开发人员不尊重Web标准,后台开发人员在抱怨为什么不可以增加一个空格。PM在抱怨为什么项目总是因为那些看似简单的问题而延期……如
- 这篇文章主要讲一下如何串行执行一组异步任务,例如有下面几个任务,在这里我们用setTimeout模拟一个异步任务:let taskA = (
- 近来,越来越多的数据科学家开始使用Python,我不由得想到,尽管他们从pandas、scikit-learn和numpy这些库中得到了不少
- 对于比较长的数字组成的字符串,我们一般会用逗号(,)隔开来格式化数字,从右往左每三个数字用一个逗号分组隔开。为什么要用逗号隔开数字呢?因为当
- 前言keep-alive 是 Vue 的内置组件,当它包裹动态组件时,会缓存不活动的组件实例,而不是销毁它们。在组件切换过程中将状态保留在内
- 本文实例为大家分享了vue移动端图片裁剪上传的具体代码,供大家参考,具体内容如下1.安装cropperjs依赖库npm install cr
- array_key_exists()PHP array_key_exists() 函数用于检查给定的键名或索引是否存在于数组中,如果存在则返
- 前言本文根据安前松的视频分享整理而来,视频回放地址如下:www.bilibili.com/video/BV1Hr…一、
- 一、 问题现象 在执行 SQL Server分布式事务时,在SQL Server 2005下收到如下错误: 消息 7391,级别 16,状态
- 实现1)有相同的数据,直接返回(返回值:0);2)有主键相同,但是数据不同的数据,进行更新处理(返回值:2);3)没有数据,进行插入数据处理
- 前言:IPython 是 Python 的原生交互式 shell 的增强版,可以完成许多不同寻常的任务,比如帮助实现并行化计算;主要使用它提
- 注:本文所说的视觉设计师专指网页视觉设计师。网页设计师与平面设计师都归类为设计师,其实这两个职业是跨行业的,虽然有很多设计师一直在跨行业工作
- 用python实现五子棋简单人机模式的练习过程,供大家参考,具体内容如下第一次写博客,我尽力把它写好。最近在初学python,今天就用自己的