【小白学习tensorflow教程】二、TensorBoard可视化模型训练
@Author:Runsen
本想在Torch和Keras更新TensorBoard,还是决定扔在了tensorflow。
TensorBoard是用于可视化图形和其他工具以理解、调试和优化模型的界面。它是一种为机器学习工作流提供测量和可视化的工具。它有助于跟踪损失和准确性、模型图可视化、低维空间中的项目嵌入等指标。
在本篇博客中,将介绍 TensorBoard 的基础知识,并了解如何可视化训练模型中的一些基本信息。
下面,我们使用MNIST 数据的图像分类模型 ,将首先导入所需的库并加载数据集。模型的建立使用最简单的顺序模型。
import tensorflow as tf
(X_train, y_train), (X_test, y_test) = tf.keras.datasets.mnist.load_data()
from tensorflow.keras.utils import np_utils
X_train=X_train.astype('float32')
X_test=X_test.astype('float32')X_train/=255
X_test/=255X_train = X_train.reshape(X_train.shape[0], 28, 28, 1).astype('float32')
X_test = X_test.reshape(X_test.shape[0], 28, 28, 1).astype('float32')y_train = np_utils.to_categorical(y_train, 10)
y_test = np_utils.to_categorical(y_test, 10)model = Sequential()
model.add(Convolution2D(32, 3, 3, input_shape=(28, 28, 1)))
model.add(Activation('relu'))
model.add(Dropout(0.25))model.add(Convolution2D(32, 3, 3))
model.add(Activation('relu'))model.add(Convolution2D(32, 3, 3))
model.add(Activation('relu'))
model.add(Dropout(0.25))model.add(Flatten())model.add(Dense(128))model.add(Dense(128))
model.add(Activation('relu'))model.add(Dense(10))
model.add(Activation('softmax'))model.compile(loss='categorical_crossentropy',optimizer='adam',metrics=['accuracy'])
keras API 训练模型时,我们创建了一个 tensorboard 回调,以确保将指标记录在指定的目录中。这里保存到logs/fit
import datetime!rm -rf ./logs/
log_dir = "logs/fit/" + datetime.datetime.now().strftime("%Y%m%d-%H%M%S")
tensorboard_callback=tf.keras.callbacks.TensorBoard(log_dir=log_dir, histogram_freq=1)
model.fit(x=X_train, y=y_train,epochs=30,validation_data=(X_test, y_test), callbacks=[tensorboard_callback])
如果使用colab,并不支持使用终端
对于 Windows 用户:tensorboard --logdir= logs/fitg
Tensorboard 位于:http://localhost:6006
如果使用colab,需要加载TensorBoard扩展程序
%load_ext tensorboard
%tensorboard --logdir logs/fit
from tensorboard import notebook
notebook.list
notebook.display(port=6006, height=1000)
如果训练迭代5k到55k,TensorBoard会给出测试集的大概结果。
如果在torch中是使用TensorBoard,在PyTorch 1.8.1 版本的发布,需要使用 PyTorch Profiler,需要安装torch_tb_profiler
。torch_tb_profiler
是TensorBoard
的一个插件,可以可视化GPU的情况,具体参考官方教程
- https://pytorch.org/tutorials/intermediate/tensorboard_profiler_tutorial.html
- https://github.com/pytorch/kineto/tree/main/tb_plugin
【小白学习tensorflow教程】二、TensorBoard可视化模型训练相关推荐
- 【深度学习】Tensorboard可视化模型训练过程和Colab使用
[深度学习]Tensorboard可视化模型训练过程和Colab使用 文章目录 1 概述 2 手撸代码实现 3 Colab使用3.1 详细步骤3.2 Demo 4 总结 1 概述 在利用TensorF ...
- 【小白学习tensorflow教程】一、tensorflow基本操作、快速构建线性回归和分类模型
@Author:Runsen TF 目前发布2.5 版本,之前阅读1.X官方文档,最近查看2.X的文档.tensorflow是非常强的工具,生态庞大. tensorflow提供了Keras的分支,这里 ...
- 【小白学习tensorflow教程】四、使用 tfhub中的模型EfficientDet-Lite2 进行对象检测
@Author:Runsen tfhub是tensorflow官方提供训练好的模型的一个仓库.今天,我使用 tfhub中的模型EfficientDet-Lite2 进行对象检测 选择的模型是Effic ...
- 使用迁移学习后使用微调再次提高模型训练的准确率
使用迁移学习后使用微调再次提高模型训练的准确率 1.微调 所谓微调:冻结模型库的底部的卷积层,共同训练新添加的分类器层和顶部部分卷积层.这允许我们"微调"基础模型中的高阶特征表示, ...
- SEO小白学习与实践(二):SEO相关基础知识与自有网站诊断
前言 两年前建网站的时候,一切都是从百度检索开始的,遇到问题就问度娘.后来发现,这样的方法不是很好.度娘可以帮助解决铁定问题,但是非常系统的知识最好还是从书本上获取.于是,这次SEO学习咱就改变思路, ...
- 用深度学习做命名实体识别(四)——模型训练
通过本文你将了解如何训练一个人名.地址.组织.公司.产品.时间,共6个实体的命名实体识别模型. 准备训练样本 下面的链接中提供了已经用brat标注好的数据文件以及brat的配置文件,因为标注内容较多放 ...
- 【机器学习PAI实践十】深度学习Caffe框架实现图像分类的模型训练
背景 我们在之前的文章中介绍过如何通过PAI内置的TensorFlow框架实验基于Cifar10的图像分类,文章链接:https://yq.aliyun.com/articles/72841.使用Te ...
- (二)为AI模型训练准备影像
目录 介绍 Roboflow数据集标准化 人脸数据集的正规化 数据集扩充 下一步 在这里,我将向您展示如何收集.预处理和扩充模型训练所需的数据. 介绍 在本系列的上一篇文章中,我们讨论了创建口罩检测器 ...
- 深度学习炼丹-超参数设定和模型训练
前言 网络层内在参数 使用 3x3 卷积 使用 cbr 组合 尝试不同的权重初始化方法 图片尺寸与数据增强 batch size 设定 背景知识 batch size 定义 选择合适大小的 batch ...
最新文章
- guava cache简单学习笔记
- Hadoop2.0新特性
- SQL Server 2014安装教程
- Eclipse配置工程自动执行ant实现热部署
- Entity Framework 4.1 : 贪婪加载和延迟加载
- [转]UE/UI/UCE/UED的区别 附UED团队网站链接
- python中avg函数的使用_PostgreSQL avg()函数
- 机器学习:弱监督学习简介
- 下载神器aria2的yaaw WebUI用法
- ThoughtWorks培训感想
- 从小米智能家居入手,揭秘物联网关键技术
- PhotoShop,CSS 文字间距 与像素之间的换算
- hutool生成二维码
- NLP入门(八)使用CRF++实现命名实体识别(NER)
- 【排行榜】Carla leaderboard 排行榜 运行与参与手把手教学
- synaptics linux驱动程序,Synaptics
- Android adb常用命令 app流量消耗获取
- 手机中的便签如何保存到另一手机中
- 这是他本赛季第一张黄牌
- 【Docker篇】Docker镜像加载原理,UnionFS(联合文件系统),镜像Commit
热门文章
- 电脑学习方法_怎样快速学习和熟悉电脑知识?|从小白到大神的快捷方法
- vim 环境变量 encoding、fileencoding、fileencodings 的作用
- mysql 6.2使用_2. MYSQL基本使用(2)
- vi的插入模式下退格和方向键不能使用的解决方法
- java内存图怎么画,jvm内存模型怎么画?简单美观的模型图制作软件
- 前端常见知识点四之webscoket
- java udp 同一个端口_java – 系统中的两个不同的UDP套接字可以绑定相同的端口吗?...
- rac下asm管理的表空间-数据文件的重命名
- case的执行顺序 嵌套使用
- ecs服务器内网连接_让不同地域云服务器ECS和云数据库内网互通