入门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/=255
X_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_profilerTensorBoard的一个插件,可以可视化GPU的情况,

具体参考官方教程

https://pytorch.org/tutorials/intermediate/tensorboard_profiler_tutorial.html

https://github.com/pytorch/kineto/tree/main/tb_plugin

到此这篇关于小白入门学习TensorBoard可视化模型训练的文章就介绍到这了,更多相关TensorBoard可视化模型训练内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • TensorFlow2.0使用keras训练模型的实现

    1.一般的模型构造.训练.测试流程 # 模型构造 inputs = keras.Input(shape=(784,), name='mnist_input') h1 = layers.Dense(64, activation='relu')(inputs) h1 = layers.Dense(64, activation='relu')(h1) outputs = layers.Dense(10, activation='softmax')(h1) model = keras.Model(inp

  • TensorFlow2.X使用图片制作简单的数据集训练模型

    Tensorflow内置了许多数据集,但是实际自己应用的时候还是需要使用自己的数据集,这里TensorFlow 官网也给介绍文档,官方文档.这里对整个流程做一个总结(以手势识别的数据集为例). 1. 收集手势图片 数据集下载 方法多种多样了.我通过摄像头自己采集了一些手势图片.保存成如下形式, 以同样的形式在建立一个测试集,当然也可以不弄,在程序里处理. 2.构建数据集 导入相关的包 import tensorflow as tf from tensorflow import keras fro

  • 如何将tensorflow训练好的模型移植到Android (MNIST手写数字识别)

    [尊重原创,转载请注明出处]https://blog.csdn.net/guyuealian/article/details/79672257 项目Github下载地址:https://github.com/PanJinquan/Mnist-tensorFlow-AndroidDemo 本博客将以最简单的方式,利用TensorFlow实现了MNIST手写数字识别,并将Python TensoFlow训练好的模型移植到Android手机上运行.网上也有很多移植教程,大部分是在Ubuntu(Linu

  • 一小时学会TensorFlow2之大幅提高模型准确率

    目录 过拟合 Regulation 公式 例子 动量 公式 例子 学习率递减 过程 例子 Early Stopping Dropout 过拟合 当训练集的的准确率很高, 但是测试集的准确率很差的时候就, 我们就遇到了过拟合 (Overfitting) 的问题. 如图: 过拟合产生的一大原因是因为模型过于复杂. 下面我们将通过讲述 5 种不同的方法来解决过拟合的问题, 从而提高模型准确度. Regulation Regulation 可以帮助我们通过约束要优化的参数来防止过拟合. 公式 未加入 r

  • 入门tensorflow教程之TensorBoard可视化模型训练

    TensorBoard是用于可视化图形 和其他工具以理解.调试和优化模型的界面. 它是一种为机器学习工作流提供测量和可视化的工具. 它有助于跟踪损失和准确性.模型图可视化.低维空间中的项目嵌入等指标. 下面,我们使用MNIST 数据的图像分类模型 ,将首先导入所需的库并加载数据集. 模型的建立使用最简单的顺序模型 import tensorflow as tf (X_train, y_train), (X_test, y_test) = tf.keras.datasets.mnist.load_

  • AngularJS入门教程之AngularJS模型

    相关阅读: AngularJS入门教程之AngularJS表达式 AngularJS入门教程之AngularJS指令 在前面表达式和指令的教程中了解到,AngularJS模型(ng-model)可以将HTML输入域中的值与AngularJS创建的变量绑定. <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script src="http://apps.bdimg.

  • tensorflow2.0教程之Keras快速入门

    Keras 是一个用于构建和训练深度学习模型的高阶 API.它可用于快速设计原型.高级研究和生产. keras的3个优点: 方便用户使用.模块化和可组合.易于扩展 1.导入tf.keras tensorflow2推荐使用keras构建网络,常见的神经网络都包含在keras.layer中(最新的tf.keras的版本可能和keras不同) import tensorflow as tf from tensorflow.keras import layers print(tf.__version__

  • AngularJS入门教程之Helloworld示例

    本文实例讲述了AngularJS入门教程之Helloworld示例.分享给大家供大家参考,具体如下: 什么是AngularJs? angularjs是一个为动态WEB应用设计的结构框架.它能让你使用HTML作为模板语言,通过扩展HTML的语法,让你能更清楚.简洁地构建你的应用组件.它的创新点在于,利用数据绑定和依赖注入,它使你不用再写大量的代码了.这些全都通过浏览器端的javascript实现,这也使得它能够完美地和任何服务器技术结合. AngularJS简单的Helloworld例子: <!D

  • AngularJS入门教程之AngularJS指令

    熟悉HTML的朋友都知道,HTML有很多属性.比如<a>标签的href属性可以来指定链接的URL地址,<input>标签的type属性可以用来指定input的类型.AngularJS指令就是通过扩展HTML的属性来为 AngularJS应用增加功能. AngularJS指令用于扩展HTML.这些都是先从ng- 前缀的特殊属性.我们将讨论以下指令: 常用AngularJS指令 ng-app 指令初始化一个 AngularJS 应用程序. ng-init 指令初始化应用程序数据. ng

  • Zend Framework入门教程之Zend_View组件用法示例

    本文实例讲述了Zend Framework入门教程之Zend_View组件用法.分享给大家供大家参考,具体如下: Zend_View组件可以实现MVC模式中视图部分的代码与Model和Controller部分的分离. 使用步骤:首先在Controller中建立一个Zend_View实例,并将需要的变量传递给它:之后,Controller通知Zend_View显示一个特定的视图, 生成View输出的内容. 实例之控制器代码脚本: <?php //使用模型来获取书籍作者和标题相关数据 $data =

  • Git可视化教程之Git Gui的使用

    在Git简介一文中已经对Git进行了简单的介绍,但是理论知识过于枯燥,加上本人专业知识不够扎实,使得初学者在Git的使用上还是会有很大的困难.虽然我更推荐使用Git Bash方式对Git进行操作,但是对于大部分只是想简单地使用一下Git进行版本控制和团队开发的朋友而言,仍然更加钟情于可视化界面.所以本文对Git官方自带的可视化工具Git Gui的使用进行介绍,尽量做到图文并茂,让所有初探Git的朋友都能够快速入门,使用Git进行项目开发. 1.在本地新建版本库 首先,我们打开Git GUI是这样

  • WCF入门教程之Windows通讯接口

    目录 概述 方案结构: 一.Contracts协定 二.Services服务 三.ServiceHost自我服务宿主 终结点(EndPoint) 1.编码方式 2.配置文件方式 四.IIS宿主 五.实现Rest 风格的web服务 六.使用预配置的主机类WebServiceHost 七.client:一个客户端 1.使用VS“添加服务引用”生成的CalculatorServiceClient 2.不用添加服务引用,使用ChannelFactory方式 八.绑定类型 1. 基于HTTP的绑定 2. 

  • AngularJS入门教程之AngularJS表达式

    表达式用于应用程序数据绑定到HTML.表达式都写在双括号就像{{表达式}}.表达式中的行为跟ng-bind指令方式相同. AngularJS应用表达式是纯javascript表达式,并输出它们被使用的数据在那里. AngularJS表达式格式 : {{expression }} AngularJS表达式可以是字符串.数字.运算符和变量 数字运算{{1 + 5}} 字符串连接{{ 'abc' + 'bcd' }} 变量运算 {{ firstName + " " + lastName }}

  • Zend Framework入门教程之Zend_Session会话操作详解

    本文实例讲述了Zend Framework入门教程之Zend_Session会话操作.分享给大家供大家参考,具体如下: 会话命名空间 实现会话 代码: <?php require_once "Zend/Session/Namespace.php"; $myNamespace = new Zend_Session_Namespace('Myspace'); if(isset($myNamespace->numberOfPageRequests)) { $myNamespace

随机推荐