数据可视化TensorboardX和tensorBoard安装及使用

tensorBoard 和TensorboardX 安装及使用指南

tensorBoard 和 TensorBoardX 是用于可视化机器学习实验和模型训练过程的工具。TensorBoard 是 TensorFlow 官方提供的可视化工具,而 TensorBoardX 是其社区驱动的替代品,支持 PyTorch 等其他框架。以下是它们的安装和使用方法。


一、TensorboardX 安装

1. 环境准备
  • Python 版本:TensorboardX 支持 Python 3.6 及以上版本。
  • pip:确保已安装 pip,Python 3.4 及以上版本自带 pip。
2. 安装 TensorboardX

方法一:使用 pip 安装

pip install tensorboardX

方法二:使用国内镜像源(适用于网络较慢的情况)

pip install tensorboardX -i https://pypi.tuna.tsinghua.edu.cn/simple

方法三:从源码安装

  1. 克隆源码仓库

    git clone https://github.com/huangzehao/tensorboardX.git
    cd tensorboardX
    
  2. 安装依赖项

    pip install -r requirements.txt
    
  3. 安装 TensorboardX

    python setup.py install
    
3. 验证安装

安装完成后,可以通过以下命令验证是否安装成功:

python -c "import tensorboardX; print(tensorboardX.__version__)"

如果没有报错并输出版本号,说明安装成功。


二、TensorBoard 安装及使用

1. 安装 TensorBoard

TensorBoard 通常与 TensorFlow 一起安装,但也可以单独安装。

  • 使用 pip 安装

    pip install tensorboard
    
  • 使用 conda 安装(如果你使用 Anaconda 或 Miniconda):

    conda install -c conda-forge tensorboard
    
2. 使用 TensorBoard
  • 在 TensorFlow 中使用

    在 TensorFlow 中,你可以通过 tf.summary API 记录日志,然后使用 TensorBoard 可视化。

    示例代码

    import tensorflow as tf
    import datetime# 创建一个日志目录
    logdir = "logs/fit/" + datetime.datetime.now().strftime("%Y%m%d-%H%M%S")# 创建一个简单的模型
    model = tf.keras.models.Sequential([tf.keras.layers.Dense(10, activation='relu', input_shape=(784,)),tf.keras.layers.Dense(10, activation='softmax')
    ])model.compile(optimizer='adam',loss='sparse_categorical_crossentropy',metrics=['accuracy'])# 创建一个 TensorBoard 回调
    tensorboard_callback = tf.keras.callbacks.TensorBoard(log_dir=logdir)# 加载数据(以 MNIST 为例)
    mnist = tf.keras.datasets.mnist
    (x_train, y_train), (x_test, y_test) = mnist.load_data()
    x_train, x_test = x_train / 255.0, x_test / 255.0# 训练模型
    model.fit(x_train, y_train, epochs=5, callbacks=[tensorboard_callback])
    
  • 启动 TensorBoard

    在终端中运行以下命令,启动 TensorBoard 并指定日志目录:

    tensorboard --logdir="D:\Program Files\python\PycharmProjects\AiStudy\demo_17\logdir"
    

    在这里插入图片描述

    然后在浏览器中打开 http://localhost:6006,即可查看可视化结果。


三、TensorBoard 和 TensorBoardX 的比较

特性TensorBoardTensorBoardX
官方支持是,TensorFlow 官方工具否,社区驱动
框架支持主要支持 TensorFlow支持 PyTorch、MXNet 等
功能丰富的可视化功能,包括标量、图像、文本等类似 TensorBoard,但更侧重于 PyTorch
安装难度较低,通常与 TensorFlow 一起安装较低,单独安装
使用场景TensorFlow 项目的首选PyTorch 项目的首选

四、TensorboardX 使用方法

1. 基本使用流程

步骤 1:导入 TensorboardX

from tensorboardX import SummaryWriter

步骤 2:创建 SummaryWriter 实例

writer = SummaryWriter(log_dir='./logs')  # 指定日志目录

步骤 3:记录数据

你可以记录标量、图片、直方图、模型图等多种类型的数据。

示例:记录标量数据

for step in range(100):writer.add_scalar('metric/loss', 0.1 * step, step)  # 添加标量数据writer.add_scalar('metric/accuracy', 0.9 - 0.01 * step, step)

步骤 4:关闭 SummaryWriter

writer.close()

步骤 5:启动 TensorBoard

在终端中运行以下命令,启动 TensorBoard 可视化界面:

tensorboard --logdir=./logs

然后打开浏览器,访问 http://localhost:6006,即可查看可视化结果。


2. 常用功能示例

(1)记录标量数据

writer.add_scalar('tag_name', scalar_value, global_step)
  • tag_name:标签名称,用于在 TensorBoard 中分类显示。
  • scalar_value:标量值。
  • global_step:全局步数,通常表示训练的迭代次数。

(2)记录图片

import numpy as np# 创建示例图片
image = np.random.rand(3, 100, 100)  # 3 通道,100x100 像素
writer.add_image('example_image', image, global_step=0)

(3)记录直方图

values = np.random.normal(loc=0, scale=1, size=1000)  # 生成正态分布数据
writer.add_histogram('distribution', values, global_step=0)

(4)记录模型图

如果你使用 PyTorch,可以记录模型结构:

import torch
import torch.nn as nnclass SimpleModel(nn.Module):def __init__(self):super(SimpleModel, self).__init__()self.fc = nn.Linear(10, 1)def forward(self, x):return self.fc(x)model = SimpleModel()
dummy_input = torch.rand(1, 10)
writer.add_graph(model, dummy_input)

(5)记录文本

writer.add_text('example_text', 'Hello, TensorboardX!', global_step=0)

(6)记录嵌入向量

# 示例嵌入向量
features = np.random.rand(100, 10)  # 100 个样本,每个样本 10 维
labels = np.random.randint(0, 10, size=100)  # 100 个标签
writer.add_embedding(features, metadata=labels, tag='embedding_example')

五、注意事项

  1. 日志目录

    • 确保 log_dir 指定的目录存在或可创建。
    • 不同的实验应使用不同的日志目录,避免数据覆盖。
  2. 资源占用

    • TensorboardX 会占用一定的磁盘空间,定期清理不再需要的日志。
    • 在训练过程中频繁记录数据可能会增加 I/O 开销,影响训练速度。
  3. 版本兼容性

    • 确保 TensorboardX 与 TensorBoard 的版本兼容。
    • 如果使用 PyTorch,建议使用最新版本的 PyTorch 和 TensorboardX。
  4. 安全性

    • 如果在服务器上运行 TensorBoard,确保只允许授权用户访问。
    • 可以使用 --bind_all 参数或配置防火墙,限制访问范围。

六、常见问题解答

Q1:TensorboardX 与 TensorBoard 有什么区别?

  • TensorboardX:是 TensorBoard 的一个社区支持版本,提供了与 TensorBoard 兼容的 API,适用于 PyTorch 等框架。
  • TensorBoard:是 TensorFlow 自带的可视化工具,原生支持 TensorFlow,但也可以通过 TensorboardX 在其他框架中使用。

Q2:如何在远程服务器上使用 TensorBoard?

  • SSH 隧道:可以通过 SSH 隧道将远程服务器的 TensorBoard 端口映射到本地。

    ssh -L 6006:localhost:6006 user@remote_server
    

    然后在本地浏览器访问 http://localhost:6006

  • 使用 ngrok:可以将本地 TensorBoard 服务暴露到公网。

Q3:TensorBoard 无法显示数据怎么办?

  • 检查日志目录:确保 tensorboard --logdir 指定的目录包含有效的日志文件。
  • 检查数据记录:确保在训练过程中正确调用了 add_scalaradd_image 等方法。
  • 查看终端输出:TensorBoard 启动时,终端会输出日志信息,检查是否有错误提示。


七、总结

  • TensorBoard 是 TensorFlow 的官方可视化工具,功能丰富,适合 TensorFlow 项目。
  • TensorBoardX 是 TensorBoard 的社区实现,支持 PyTorch 等其他框架,使用方式与 TensorBoard 类似。
  • 安装和使用 都相对简单,只需确保正确记录日志并启动 TensorBoard 服务。

通过 TensorBoard 或 TensorBoardX,你可以直观地监控模型训练过程,分析实验结果,从而更有效地优化模型。

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

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

相关文章

flutter-实现瀑布流布局及下拉刷新上拉加载更多

文章目录 1. 效果预览2. 结构分析3. 完整代码4. 总结 1. 效果预览 在 Flutter 应用开发中,瀑布流布局常用于展示图片、商品列表等需要以不规则但整齐排列的内容。同时,下拉刷新和上拉加载更多功能,能够极大提升用户体验,让用户方…

【day2】数据结构刷题 栈

一 有效的括号 给定一个只包括 (,),{,},[,] 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右括号都有一个对应的…

YAML是什么?

YAML(YAML Ain’t Markup Language)是一种以数据为中心、高度可读的序列化语言,广泛应用于配置文件、数据交换和自动化工具中。以下从多个维度对其进行全面解析: 1. 定义与历史演变 全称与定位: YAML的全称最初为“Yet…

熔断降级(Sentinel解决)

问题概述 在微服务架构中一定要预防微服务雪崩问题,微服务雪崩问题就是指在微服务架构中,当一个服务出现故障时,由于服务之间的依赖关系,故障可能会传播到其他服务,从而导致了大规模的服务失败,系统无法正…

反序列化漏洞

前提概要 本文章主要用于分享反序列化漏洞基础学习,以下是对反序列化漏洞的一些个人解析,请大家结合参考其他文章中的相关信息进行归纳和补充。 反序列化漏洞描述 反序列化漏洞是指程序在对输入的字节流进行反序列化时,因缺乏充分的验证和过…

吐血整理:Air8201如何使用LuatOS进行电源管理功能!

在物联网应用场景中,设备续航能力直接影响其部署成本与运维效率。LuatOS操作系统通过软件层面的精细化控制,为Air8201提供了灵活且高效的电源管理策略。本文将从系统架构、API接口、实战配置三个维度,解析如何利用LuatOS实现Air8201的智能电源…

STM32学习笔记之存储器映射(原理篇)

📢:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨ 📢:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】 📢:文章若有幸对你有帮助,可点赞 👍…

合宙780E开发学习-LUATOS-SOC云编译自定义固件

登录https://luatos.com 点击登录,使用合宙erp账号登录即可 点击右上角构建,点击右上角菜单新构建,自定义构建名称,可新建多个 勾选想要的组件 点击右上角保存修改,只有点击准备就绪(注意:一定…

react 15-16-17-18各版本的核心区别、底层原理及演进逻辑的深度解析

一、React 15(2016) 核心架构:Stack Reconciler(栈协调器) 工作原理: 同步递归渲染:采用深度优先遍历方式递归处理 Virtual DOM,形成不可中断的调用栈渲染流程:1. 触发 …

【HarmonyOS NEXT】EventHub和Emitter的使用场景与区别

一、EventHub是什么? 移动应用开发的同学应该比较了解EventHub,类似于EventBus。标准的事件广播通知,订阅,取消订阅的处理。EventHub模块提供了事件中心,提供订阅、取消订阅、触发事件的能力。 类似的框架工具有很多…

QT记事本

记事本应用程序提供了基本的文本编辑功能,支持文件的新建、打开、保存和另存为操作,同时具备修改提示和关闭窗口时的保存确认功能。使用 UTF - 8 编码确保了对多语言文本的支持。 1. 项目整体结构 main.cpp:程序的入口点,负责初…

如何用 Postman 发送 POST 请求?

POST 请求是 HTTP 协议中用于提交数据的一种方法,Postman 提供了丰富的功能来支持用户发送包含各种信息的 POST 请求,如文本数据、JSON 或 XML 数据结构、文件等。 Postman 发送 post 请求教程

Ant Design Vue 中的table表格高度塌陷,造成行与行不齐的问题

前言: Ant Design Vue: 1.7.2 Vue2 less 问题描述: 在通过下拉框选择之后,在获取接口数据,第一列使用了fixed:left,就碰到了高度塌陷,查看元素的样式结果高度不一致,如&#x…

Flink 通过 Chunjun Oracle LogMiner 实时读取 Oracle 变更日志并写入 Doris 的方案

文章目录 一、 技术背景二、 关键技术1、 Oracle LogMiner2、 Chunjun 的 LogMiner 关键流程3、修复 Chunjun Oracle LogMiner 问题 一、 技术背景 在大数据实时同步场景中,需要将 Oracle 数据库的变更数据(CDC) 采集并写入 Apache Doris&am…

qt+opengl 加载三维obj文件

1前面我们已经熟悉了opengl自定义顶点生成一个立方体,并且我们实现了立方体的旋转,光照等功能。下面我们来用opengl来加载一个obj文件。准备我们首先准备一个简单的obj文件(head.obj)。资源在本页下载 2 在obj文件里面&#xff0c…

计算机组成原理的学习day01

一 计算机系统层次结构 1 计算机硬件的基本组成 好的,上个小节中我们了解了计算机系统的概念,还有计算机的一个发展历程,那这个小节中我们会着重的探讨计算机硬件的一个基本组成。我们需要掌握这样的两种结构,第一种是早期的冯诺…

ASP 应用HTTP.SYS短文件文件解析Access 注入数据库泄漏

#ASP- 默认安装 -MDB 数据库泄漏下载(路径是知道的话可以直接下载) 由于大部分 ASP 程序与 ACCESS 数据库搭建,但 ACCESS 无需连接,都在脚本文件中定 义配置好数据库路径即用,不需要额外配置安装数据库&#x…

Redis 版本演进及主要新特性

Redis 版本发布历史 稳定版本时间线 Redis 2.6 (2012年)Redis 2.8 (2013年11月)Redis 3.0 (2015年4月) - 首次支持集群Redis 3.2 (2016年5月)Redis 4.0 (2017年7月)Redis 5.0 (2018年10月)Redis 6.0 (2020年4月)Redis 6.2 (2021年2月)Redis 7.0 (2022年4月) - 最新稳定版(截至…

从 MySQL 到时序数据库 TDengine:Zendure 如何实现高效储能数据管理?

小T导读:TDengine 助力广州疆海科技有限公司高效完成储能业务的数据分析任务,轻松应对海量功率、电能及输入输出数据的实时统计与分析,并以接近 1 : 20 的数据文件压缩率大幅降低存储成本。此外,taosX 强大的 transform 功能帮助用…

NVM安装速通使用手册(Windows版)NVM管理node版本命令手册 NVM使用手册

nvm(Node Version Manager)是一个用于管理Node.js版本的命令行工具。通过nvm,你可以在同一台机器上安装和切换多个Node.js版本,非常适合开发和测试在不同Node.js版本上运行的应用程序 一、安装地址 1. 官方下载: &…