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
猜你喜欢
- 各位工程师累了吗? 推荐一篇可以让你技术能力达到出神入化的网站"持久男"1.二维绘图a. 一维数据集用 Numpy nd
- MS SQL基本语法及实例操作 一:建表并初始化 ============================ create database
- 为了更直观的了解prometheus如何工作,本文使用prometheus的python库来做一些相应的测试。python库的github地
- QQ邮箱/163邮箱的邮件发送:py文件发送邮件内容相当于一个第三方的客户端,借助于QQ/163邮箱服务器来发送的邮件。主要配置:导入模块—
- 本文实例为大家分享了python实现图片转换成素描和漫画格式的具体代码,供大家参考,具体内容如下原图图片转换后的成果源码# -*- codi
- 一:文字加粗 倾斜的代码文字加粗的代码是: <b>你好</b>文字倾斜的代码是: <i>你好!</
- 导言GridView是由一组字段(Field)组成的,它们都指定的了来自DataSource中的什么属性需要用到自己的输出呈现中。最简单的字
- 于是写测试程序。。。不行 下载最新的ODBC。。。还是不行 通过sql plus查询。。。咦?竟然也查不到。。。 于是,折腾。。。折腾。。。
- 变量命名在《初识永远强大的函数》一文中,有一节专门讨论“取名字的学问”,就是有关变量名称的问题,本温故而知新的原则,这里要复习:名称格式:(
- 一、赋值对比1、列表l1 = [1,2,3]l2 = l1l1.append('a')print(l1,l2)
- HTTP暴力破解、撞库,有一些惯用的技巧,比如:1. 在扫号人人网时,我遇到单个账号错误两次,强制要求输入验证码,而对方并未实施IP策略。我
- 本文实例为大家分享了Python感知器算法实现的具体代码,供大家参考,具体内容如下先创建感知器类:用于二分类# -*- coding: ut
- 数据库的选择原则是什么?我只知道小网站用Access,大网站用SQL,请问它的具体选择原则是什么?在实际应用中,数据库的选择原则一般是:如果
- 购物车程序要求如下图代码# --*--coding:utf-8--*--# Author: 村雨import pprintproductLi
- 前言本文提供将多个视频拼接为一个视频的Python工具代码,其中有一些限制条件,下面的代码说明会提到。环境依赖ffmpeg环境安装,可以参考
- 本文介绍 SQL Server 2000 企业版的新功能 - 索引视图。讲解索引视图并讨论一些提高性能的具体方案。什么是索引视图?许多年来,
- 简述在大多数此类教程中都会不遗余力的介绍如何使用数据库。今天我们对数据库暂且不表,而是来关注另一个在web应用中很重要的特性:如
- 使用smtplib模块发送邮件,供大家参考,具体内容如下1)使用smtplib模块发送简单邮件步骤:1.连接SMTP服务器,并使用用户名、密
- 正则表达式(Regular Expression,在代码中常简写为regex、regexp或RE)是计算机科学的一个概念。正则表达式使用单个
- 我就废话不多说了,大家还是直接看代码吧!print("thresh =",thresh)coords = np.colu