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

news2025/3/31 17:12:34

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 nn

class 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.coloradmin.cn/o/2323545.html

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

相关文章

【Hugging Face 开源库】Diffusers 库 —— 扩散模型

Diffusers 的三个主要组件1. DiffusionPipeline:端到端推理工具__call__ 函数callback_on_step_end 管道回调函数 2. 预训练模型架构和模块UNetVAE(Variational AutoEncoder)图像尺寸与 UNet 和 VAE 的关系EMA(Exponential Moving…

AWTK-WEB 快速入门(6) - JS WebSocket 应用程序

WebSocket 可以实现双向通信,适合实时通信场景。本文介绍一下使用 Javacript 语言开发 AWTK-WEB 应用程序,并用 WebSocket 与服务器通讯。 用 AWTK Designer 新建一个应用程序 先安装 AWTK Designer: https://awtk.zlg.cn/web/index.html …

使用VSCODE导致CPU占用率过高的处理方法

1:cpptools 原因:原因是C/C会在全局搜索文件,可以快速进行跳转;当打开的文件过大,全局搜索文件会占用大量CPU; 处理方法: 1:每次只打开小文件夹; 2:打开大文…

【力扣hot100题】(004)盛水最多的容器

现在能这么快做出来纯粹是因为当时做的时候给我的印象实在太深了。 犹记得这题是当年开启我用CSDN记录leetcode日记历史的开端。 总之印象太深了不会都不行啊!!记得当年是想到用各种动态规划回溯等等等等最终发现是最简单贪心和双指针。 解法也是非常简…

用Deepseek写扫雷uniapp小游戏

扫雷作为Windows系统自带的经典小游戏,承载了许多人的童年回忆。本文将详细介绍如何使用Uniapp框架从零开始实现一个完整的扫雷游戏,包含核心算法、交互设计和状态管理。无论你是Uniapp初学者还是有一定经验的开发者,都能从本文中获得启发。 …

Eclipse IDE for ModusToolbox™ 3.4环境通过JLINK调试CYT4BB

使用JLINK在Eclipse IDE for ModusToolbox™ 3.4环境下调试CYT4BB,配置是难点。总结一下在IDE中配置JLINK调试中遇到的坑,以及如何一步一步解决遇到的问题。 1. JFLASH能够正常下载程序 首先要保证通过JFLASH(我使用的J-Flash V7.88c版本)能够通过JLIN…

修改git在提交代码时的名称

在git中,如果想修改提交代码作者的名字,可以进行以下操作: 1.在桌面或者文件夹内右击鼠标,点开Git Bash here。 2.进入后,通过git config user.name 回车查看当前名称。 3.通过git config --global user.name "…

【Linux】深入解析Linux命名管道(FIFO):原理、实现与实战应用

本文承接上文匿名管道:【Linux】深度解析Linux进程间通信:匿名管道原理、实战与高频问题排查-CSDN博客 深入探讨Linux进程间通信(IPC),以匿名管道为核心,详细阐述其通信目的、实现前提及机制。涵盖数据传输…

第十四届蓝桥杯省赛电子类单片机学习记录(客观题)

01.一个8位的DAC转换器,供电电压为3.3V,参考电压2.4V,其ILSB产生的输出电压增量是(D)V。 A. 0.0129 B. 0.0047 C. 0.0064 D. 0.0094 解析: ILSB(最低有效位)的电压增量计算公式…

vim的一般操作(分屏操作) 和 Makefile 和 gdb

目录 一. vim的基本概念 二. vim基础操作 2.1 插入模式 aio 2.2 [插入模式]切换至[正常模式] Esc 2.3[正常模式]切换至[末行模式] shift ; 2.4 替换模式 Shift R 2.5 视图(可视)模式 (可以快速 删除//注释 或者 增加//注释) ctrl v 三&…

Apache Shiro 统一化实现多端登录(PC端移动端)

Apache Shiro 是一个强大且易用的Java安全框架,提供了身份验证、授权、密码学和会话管理等功能。它被广泛用于保护各种类型的应用程序,包括Web应用、桌面应用、RESTful服务、移动端应用和大型企业级应用。 需求背景 在当今数字化浪潮的推动下&#xff…

NAT—地址转换(实战篇)

一、实验拓扑: 二、实验需求: 1.实现内网主机访问外网 2.实现外网客户端能够访问内网服务器 三、实验思路 1.配置NAT地址池实现内网地址转换成公网地址,实现内网主机能够访问外网。 2.配置NAT Sever实现公网地址映射内网服务器地址&…

用HTML和CSS生成炫光动画卡片

这个效果结合了渐变、旋转和悬浮效果的炫酷动画示例&#xff0c;使用HTML和CSS实现。 一、效果 二、实现 代码如下&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport&quo…

FPGA_YOLO(三)

上一篇讲的是完全映射&#xff0c;也就是block中的所包含的所有的卷积以及归一&#xff0c;池化卷积 举例总共6个等都在pl侧进行处理&#xff08;写一个top 顶层 里面conv 1 bn1 relu1 pool1 conv1*1 conv 2 bn2 relu2 pool2 conv1*1 ....总共6个 &#xff09;&#xff0c;…

旅游CMS选型:WordPress、Joomla与Drupal对比

内容概要 在旅游行业数字化转型进程中&#xff0c;内容管理系统&#xff08;CMS&#xff09;的选择直接影响网站运营效率与用户体验。WordPress、Joomla和Drupal作为全球主流的开源CMS平台&#xff0c;其功能特性与行业适配性存在显著差异。本文将从旅游企业核心需求出发&…

全面适配iOS 18.4!通付盾加固产品全面升级,护航App安全上架

引言&#xff1a; 苹果官方新规落地&#xff01; 自2025年4月24日起&#xff0c;所有提交至App Store Connect的应用必须使用Xcode 16或更高版本构建&#xff0c;否则将面临审核驳回风险&#xff01;Beta版iOS 18.4、iPadOS 18.4现已推出&#xff0c;通付盾iOS加固产品率先完成…

一台电脑最多能接几个硬盘?

在使用电脑时&#xff0c;硬盘空间不够是许多用户都会遇到的问题。无论是摄影师、剪辑师等需要大量存储空间的专业人士&#xff0c;还是游戏玩家、数据备份爱好者&#xff0c;都可能希望通过增加硬盘来扩展存储容量。然而&#xff0c;一台电脑究竟最多能接多少个硬盘&#xff1…

【玩转全栈】---- Django 基于 Websocket 实现群聊(解决channel连接不了)

学习视频&#xff1a; 14-11 群聊&#xff08;一&#xff09;_哔哩哔哩_bilibili 目录 Websocket 连接不了&#xff1f; 收发数据 断开连接 完整代码 聊天室的实现 聊天室一 聊天室二 settings 配置 consumer 配置 多聊天室 Websocket 连接不了&#xff1f; 基于这篇博客&…

如何快速解决django报错:cx_Oracle.DatabaseError: ORA-00942: table or view does not exist

我们在使用django连接oracle进行编程时&#xff0c;使用model进行表映射对接oracle数据时&#xff0c;默认表名组成结构为&#xff1a;应用名_类名&#xff08;如&#xff1a;OracleModel_test&#xff09;&#xff0c;故即使我们库中存在表test&#xff0c;运行查询时候&#…

本地安装git

下载git 通过官网 下载 &#xff1a;Git - Downloading Package 若此页面无法直达&#xff0c;请删掉download/win尝试 2.双击运行安装 选择安装目录&#xff1a; 选择配置&#xff0c;默认不动 git安装目录名 默认即可 Git 的默认编辑器&#xff0c;建议使用默认的 Vim 编辑器…