Keras训练可视化

简介

在上一篇文章中提到了模型训练的很多细节,最后的实战是在训练完成后可视化训练过程的,实际上对于大型深度学习项目,实时可视化训练状况是必要的。但是,由于Keras对训练过程封装程度非常高(高到只能调用fit这类函数进行训练),像动态图那样循环过程中不断写入log进行可视化是很难做到的,Keras在这方面提供了一个可视化的回调函数—TensorBoard。

训练可视化

在Keras中想要进行训练可视化最快速方便的选择就是其主模块TensorFlow支持的TensorBoard模块,该模块在较新版本的TensorFlow中默认安装,如没有需要自行使用pip安装。

首先,命令行打开TensorBoard的后台服务,在需要监控log文件夹的目录下执行命令tensorboard --log_dir=logs/即可,指定的日志文件夹需要与代码中回调函数设置的一致。

使用keras.callbacks.TensorBoard(log_dir='./logs')进行TensorBoard的文件写入,不需要像TensorFlow训练那样自己添加TensorBoard中的graphscalar等,该函数唯一的参数是Keras自动写入TensorBoard日志的文件夹,TensorBoard服务监控的文件夹需要是该文件夹才行。

上述的回调提供了一种非常简单的使用TensorBoard进行可视化的方法,不需要用户设定日志文件名和写入日志文件,Keras会自动写入默认格式的日志文件。

下面以Caltech101数据集上的训练为例,演示可视化训练结果,代码如下。

"""
Author: Zhou Chen
Date: 2020/3/24
Desc: desc
"""
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = "2"
import tensorflow.keras as keras
from tensorflow.keras.layers import Input, GlobalAveragePooling2D, Dropout, Dense
from dataset import Caltech101def build_model(input_shape, n_classes):input_tensor = Input(shape=input_shape)vgg = keras.applications.VGG16(include_top=False, weights=None, input_tensor=input_tensor)x = GlobalAveragePooling2D()(vgg.output)x = Dropout(0.5)(x)x = Dense(n_classes, activation='softmax')(x)model = keras.models.Model(input_tensor, x)return modelmodel = build_model((224, 224, 3), 101)
model.compile(loss='categorical_crossentropy', optimizer=keras.optimizers.Adam(3e-4), metrics=['accuracy'])callbacks = [keras.callbacks.TensorBoard("./logs")
]train_gen, valid_gen, test_gen = Caltech101()model.fit_generator(train_gen, steps_per_epoch=train_gen.n// train_gen.batch_size,epochs=50,callbacks=callbacks
)

Keras封装的默认TensorBoard日志文件输出包括几个指标每轮的变化以及模型结构示意图。

补充说明

本文主要介绍Keras中如何使用TensorBoard进行训练可视化,具体代码开源于我的Github,欢迎star或者fork。

Keras-训练可视化相关推荐

  1. 使用Keras训练历史可视化(含踩雷)

    Keras训练历史可视化 Keras训练历史可视化示例代码 注意 Keras训练历史可视化示例代码 import matplotlib.pyplot as plthistory = model.fit ...

  2. CNN训练可视化特征图(tensorflow2.x实现)

    CNN训练可视化(tensorflow2.x实现) 原理介绍 实例化VGG16 加载图片并进行预处理 预测图片 获取指定层对应的输出 可视化CNN训练过程 原理介绍 卷积层由多个卷积核组成,可以将每个 ...

  3. YOLOv5的Tricks | 【Trick11】在线模型训练可视化工具wandb(Weights Biases)

    如有错误,恳请指出. 与其说是yolov5的训练技巧,这篇博客更多的记录如何使用wandb这个在线模型训练可视化工具,感受到了yolov5作者对其的充分喜爱. 所以下面内容更多的记录下如何最简单的使用 ...

  4. C++ 和 OpenCV 实现卷积神经网络并加载 Keras 训练好的参数进行预测

    C++ 和 OpenCV 实现卷积神经网络并加载 Keras 训练好的参数进行预测 一. 背景 二. Keras 定义神经网络结构 channels_first 与 channels_last cha ...

  5. 使用Keras训练自动驾驶(使用Udacity自动驾驶模拟器)

    使用Keras训练自动驾驶(使用Udacity自动驾驶模拟器) 1.完成项目所需要的资源 (1)模拟器下载 • Linux • macOS • Windows (2)Unity 下载 运行Udacit ...

  6. PyTorch深度学习训练可视化工具tensorboardX

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 之前笔者提到了PyTorch的专属可视化工具visdom,参看Py ...

  7. Keras训练神经网络进行分类并使用GridSearchCV进行参数寻优

    Keras训练神经网络进行分类并使用GridSearchCV进行参数寻优 在机器学习模型中,需要人工选择的参数称为超参数.比如随机森林中决策树的个数,人工神经网络模型中隐藏层层数和每层的节点个数,正则 ...

  8. Keras训练神经网络进行分类并进行交叉验证(Cross Validation)

    Keras训练神经网络进行分类并进行交叉验证(Cross Validation) 交叉验证是在机器学习建立模型和验证模型参数时常用的办法.交叉验证,顾名思义,就是重复的使用数据,把得到的样本数据进行切 ...

  9. 【深度学习】PyTorch深度学习训练可视化工具visdom

    PyTorch Author:louwill Machine Learning Lab 在进行深度学习实验时,能够可视化地对训练过程和结果进行展示是非常有必要的.除了Torch版本的TensorBoa ...

  10. PyTorch项目使用TensorboardX进行训练可视化

    PyTorch项目使用TensorboardX进行训练可视化 什么是TensorboardX 配置TensorboardX 使用 pip 安装 从源码安装 使用TensorboardX 参考资料 什么 ...

最新文章

  1. WINCE6.0+S3C2443睡眠和唤醒(sleep and wake up)的实现
  2. 条款6:若不想使用编译器自动生成的函数,就该明确拒绝
  3. 微信重磅更新!这个功能等了 7 年
  4. [完结]以C++与Java为例,详解数据结构的动态增长策略
  5. oracle rman备份整库,RMAN备份恢复整个库
  6. 字符串转数字测试--知识备忘
  7. python怎么用turtle画圆_在Python中用turtle函数画同心圆
  8. 作用 和会话期 进程组_进程 进程组 会话的关系及作用
  9. Node.js学习笔记(五)——WebSocket
  10. java软件工程师工作业绩_java软件工程师的工作描述怎么写
  11. mac屏幕分辨率调整:SwitchResX
  12. zabbix查询历史数据
  13. 【生产优化】基于matlab遗传算法求解帐篷工序问题【含Matlab源码 2145期】
  14. 如何更新服务器系统教程,服务器操作系统如何更新
  15. (与运算)、|(或运算)、^(异或运算)等运算符的解释与运用
  16. 机器学习:线性回归以及非线性回归
  17. Moba项目开发(一)打造网络通信系统-任务3:03.定制通信报文的格式
  18. 【zotero】从知网万方维普WOS等数据库上导出格式引文-引文格式到zotero中
  19. 《目标检测蓝皮书》第1篇 机器学习基础
  20. 运营商大数据系列(一) LTE信令数据简析

热门文章

  1. 仓库的种类和彼此关系
  2. RocketMQ的Consumer详解之push和pull模式(长轮询)
  3. spring基于纯注解的声明式事务控制
  4. SpringBoot异常处理-@ControlleAdvice
  5. 内置方法-str方法定制变量输出信息
  6. 开始使用Spring Cloud实战微服务
  7. plsql(轻量版)-存储函数存储过程
  8. Android从url不产生cookie,如何从android.webkit.CookieManager获取所有cookie或cookie的URL
  9. win32 输出文字时清除之前的_努力学习没效果?3个步骤,强化沟通输出,实现飞跃式成长...
  10. 201101shell脚本