数据可视化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
方法三:从源码安装
-
克隆源码仓库
git clone https://github.com/huangzehao/tensorboardX.git cd tensorboardX -
安装依赖项
pip install -r requirements.txt -
安装 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.summaryAPI 记录日志,然后使用 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 的比较
| 特性 | TensorBoard | TensorBoardX |
|---|---|---|
| 官方支持 | 是,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')
五、注意事项
-
日志目录:
- 确保
log_dir指定的目录存在或可创建。 - 不同的实验应使用不同的日志目录,避免数据覆盖。
- 确保
-
资源占用:
- TensorboardX 会占用一定的磁盘空间,定期清理不再需要的日志。
- 在训练过程中频繁记录数据可能会增加 I/O 开销,影响训练速度。
-
版本兼容性:
- 确保 TensorboardX 与 TensorBoard 的版本兼容。
- 如果使用 PyTorch,建议使用最新版本的 PyTorch 和 TensorboardX。
-
安全性:
- 如果在服务器上运行 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_scalar、add_image等方法。 - 查看终端输出:TensorBoard 启动时,终端会输出日志信息,检查是否有错误提示。
七、总结
- TensorBoard 是 TensorFlow 的官方可视化工具,功能丰富,适合 TensorFlow 项目。
- TensorBoardX 是 TensorBoard 的社区实现,支持 PyTorch 等其他框架,使用方式与 TensorBoard 类似。
- 安装和使用 都相对简单,只需确保正确记录日志并启动 TensorBoard 服务。
通过 TensorBoard 或 TensorBoardX,你可以直观地监控模型训练过程,分析实验结果,从而更有效地优化模型。
相关文章:
数据可视化TensorboardX和tensorBoard安装及使用
tensorBoard 和TensorboardX 安装及使用指南 tensorBoard 和 TensorBoardX 是用于可视化机器学习实验和模型训练过程的工具。TensorBoard 是 TensorFlow 官方提供的可视化工具,而 TensorBoardX 是其社区驱动的替代品,支持 PyTorch 等其他框架。以下是它…...
【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 …...
tcl语法中的命令
tcl语法中存在多少个命令呢? 如下, after errorInfo load pwd tcl_rcFileName append eval lrange re_syntax tcl_startOfNextWord apply exec lrepeat read tcl_startOfPreviousWord argc exit lreplace refchan tcl_traceCompile argv expr lreverse r…...
ESLint报错:Could not find config file.
如果你的ESLint的版本大于 8,同时使用 .eslinrc.js 和 .eslintignore 作为配置文件,且目前用的是 VSCODE ,就有可能遇到报错: Could not find config file. 这个是因为 VSCode 中 ESLint 插件的配置 eslint.useFlatConfig 的问题…...
北斗导航 | 基于北斗三号短报文通信的北斗-YOLO融合系统原理,算法公式,系统流程框图,matlab代码,应用场景
以下是关于基于北斗三号短报文通信的北斗-YOLO融合系统的详细解析,包含原理、算法公式、系统流程、Matlab代码框架和应用场景。一、系统原理 北斗-YOLO融合系统结合了北斗三号短报文通信(双向通信能力)和YOLO目标检测算法,用于在无地面网络覆盖区域实现实时目标检测与数据传…...
Vue3 中使用 vuedraggable 实现拖拽排序功能,分组拖拽
Vue3 中使用 vuedraggable 实现拖拽排序功能,分组拖拽 安装draggable npm install vuedraggablenext --save基础用法示例 <template><div class"app-container"><draggable v-model"list" item-key"id":group"…...
使用VSCODE导致CPU占用率过高的处理方法
1:cpptools 原因:原因是C/C会在全局搜索文件,可以快速进行跳转;当打开的文件过大,全局搜索文件会占用大量CPU; 处理方法: 1:每次只打开小文件夹; 2:打开大文…...
【力扣hot100题】(004)盛水最多的容器
现在能这么快做出来纯粹是因为当时做的时候给我的印象实在太深了。 犹记得这题是当年开启我用CSDN记录leetcode日记历史的开端。 总之印象太深了不会都不行啊!!记得当年是想到用各种动态规划回溯等等等等最终发现是最简单贪心和双指针。 解法也是非常简…...
用Deepseek写扫雷uniapp小游戏
扫雷作为Windows系统自带的经典小游戏,承载了许多人的童年回忆。本文将详细介绍如何使用Uniapp框架从零开始实现一个完整的扫雷游戏,包含核心算法、交互设计和状态管理。无论你是Uniapp初学者还是有一定经验的开发者,都能从本文中获得启发。 …...
宝塔面板部署 Laravel 项目无法访问静态资源的解决方法
提示:“奔跑吧邓邓子” 的常见问题专栏聚焦于各类技术领域常见问题的解答。涵盖操作系统(如 CentOS、Linux 等)、开发工具(如 Android Studio)、服务器软件(如 Zabbix、JumpServer、RocketMQ 等)以及远程桌面、代码克隆等多种场景。针对如远程桌面无法复制粘贴、Kuberne…...
C/C++中的条件编译指令#if
#if 是 C/C 中的预处理指令,用于条件编译。它允许根据预定义的条件来决定是否编译某段代码。#if 通常与 #define、#ifdef、#ifndef、#else 和 #endif 等指令一起使用。 基本语法 #if 条件表达式// 如果条件表达式为真,编译这部分代码 #else// 如果条件…...
【设计模式】策略模式(Strategy Pattern)详解
策略模式(Strategy Pattern)详解 一、策略模式的定义 策略模式(Strategy Pattern)是一种行为型设计模式,它定义了一组算法,将每个算法封装起来,并使它们可以相互替换,从而让算法的…...
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 "…...
前端显示no data(没有数据,一片空白)
◎浏览器查看显示 message: "Request failed with status code 404", name: "AxiosError", code: "ERR_BAD_REQUEST" ◎后端gateway 模块显示: 无需验证,通行。/business/admin/save 显示正确的路径,但是没有返回结果…...
CCF编程能力等级认证GESP—C++7级—20250322
CCF编程能力等级认证GESP—C7级—20250322 单选题(每题 2 分,共 30 分)判断题(每题 2 分,共 20 分)编程题 (每题 25 分,共 50 分)图上移动等价消除 单选题(每题 2 分,共 …...
【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(最低有效位)的电压增量计算公式…...
Python高效编程技巧与AI专用库:NumPy/Pandas数据处理与Matplotlib/Seaborn可视化实战
Python高效编程技巧与AI专用库:NumPy/Pandas数据处理与Matplotlib/Seaborn可视化实战 引言:Python高效AI开发的核心技能栈 在AI项目中,数据处理和可视化占据了70%以上的工作量。低效的代码会导致模型训练缓慢,而糟糕的数据可视化…...
vim的一般操作(分屏操作) 和 Makefile 和 gdb
目录 一. vim的基本概念 二. vim基础操作 2.1 插入模式 aio 2.2 [插入模式]切换至[正常模式] Esc 2.3[正常模式]切换至[末行模式] shift ; 2.4 替换模式 Shift R 2.5 视图(可视)模式 (可以快速 删除//注释 或者 增加//注释) ctrl v 三&…...
生成器的应用 async与await实现
生成器配合使用函数 yield 将暂停执行代码,同时把函数返回值传递出去 function s(){console.log(ss); } function * f(){/*当 next() 调用时从头开始执行直到yield 开始检查后面的表达式现在是一个函数,那么首先执行函数当函数执行完毕,有返回值下面相当于 yield undefined*/…...
Apache Shiro 统一化实现多端登录(PC端移动端)
Apache Shiro 是一个强大且易用的Java安全框架,提供了身份验证、授权、密码学和会话管理等功能。它被广泛用于保护各种类型的应用程序,包括Web应用、桌面应用、RESTful服务、移动端应用和大型企业级应用。 需求背景 在当今数字化浪潮的推动下ÿ…...
NAT—地址转换(实战篇)
一、实验拓扑: 二、实验需求: 1.实现内网主机访问外网 2.实现外网客户端能够访问内网服务器 三、实验思路 1.配置NAT地址池实现内网地址转换成公网地址,实现内网主机能够访问外网。 2.配置NAT Sever实现公网地址映射内网服务器地址&…...
用HTML和CSS生成炫光动画卡片
这个效果结合了渐变、旋转和悬浮效果的炫酷动画示例,使用HTML和CSS实现。 一、效果 二、实现 代码如下: <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport&quo…...
Vue 3 + Composition API + Vite + Pinia + Element Plus 构建项目的完整指南
以下是使用 Vue 3 + Composition API + Vite + Pinia + Element Plus 构建项目的完整指南,包含 TypeScript 支持配置: 1. 创建项目 使用 Vite 初始化项目 npm create vite@latest my-vue-app -- --template vue-ts如果不需要 TypeScript,使用 --template vue 进入项目目录…...
FPGA_YOLO(三)
上一篇讲的是完全映射,也就是block中的所包含的所有的卷积以及归一,池化卷积 举例总共6个等都在pl侧进行处理(写一个top 顶层 里面conv 1 bn1 relu1 pool1 conv1*1 conv 2 bn2 relu2 pool2 conv1*1 ....总共6个 ),…...
使用 SQL CTE(公共表表达式)优化数据查询的实践
目录 一、背景 二、什么是 CTE? 三、CTE 的基本结构 四、示例分析 五、CTE 的作用 六、优势分析 一、背景 在数据分析和数据库管理中,SQL 查询的效率和可读性是至关重要的。随着数据量的不断增加,复杂的查询变得越来越难以管理和理解。…...
旅游CMS选型:WordPress、Joomla与Drupal对比
内容概要 在旅游行业数字化转型进程中,内容管理系统(CMS)的选择直接影响网站运营效率与用户体验。WordPress、Joomla和Drupal作为全球主流的开源CMS平台,其功能特性与行业适配性存在显著差异。本文将从旅游企业核心需求出发&…...
全面适配iOS 18.4!通付盾加固产品全面升级,护航App安全上架
引言: 苹果官方新规落地! 自2025年4月24日起,所有提交至App Store Connect的应用必须使用Xcode 16或更高版本构建,否则将面临审核驳回风险!Beta版iOS 18.4、iPadOS 18.4现已推出,通付盾iOS加固产品率先完成…...
