在Keras中使用tensorboard可视化acc等曲线

1.使用tensorboard可视化ACC,loss等曲线

 1 keras.callbacks.TensorBoard(log_dir=‘./Graph‘,
 2                     histogram_freq= 0 ,
 3                     write_graph=True,
 4                 write_images=True)
 5 tbCallBack = keras.callbacks.TensorBoard(log_dir=‘./Graph‘,
 6                                          histogram_freq= 0,
 7                                          write_graph=True,
 8                                          write_images=True)
 9 …
10 …
11 model.compile(optimizer=optim,
12               loss=MultiboxLoss(NUM_CLASSES, neg_pos_ratio=2.0).compute_loss, metrics=[‘accuracy‘])
13 nb_epoch = 30
14 history = model.fit_generator(gen.generate(True), gen.train_batches,
15                               nb_epoch, verbose=1,
16                              callbacks=[tbCallBack],
17                              validation_data=gen.generate(False),
18                               nb_val_samples=gen.val_batches,
19                               nb_worker=1)

然后新开一个终端 
输入:

tensorboard --logdir path_to_current_dir/Graph 

之后打开终端给出的网址即可。

2.直接使用matplotlib画出训练LOSS与ACC曲线

第一步:

 1 # define the function
 2 def training_vis(hist):
 3     loss = hist.history[‘loss‘]
 4     val_loss = hist.history[‘val_loss‘]
 5     acc = hist.history[‘acc‘]
 6     val_acc = hist.history[‘val_acc‘]
 7
 8     # make a figure
 9     fig = plt.figure(figsize=(8,4))
10     # subplot loss
11     ax1 = fig.add_subplot(121)
12     ax1.plot(loss,label=‘train_loss‘)
13     ax1.plot(val_loss,label=‘val_loss‘)
14     ax1.set_xlabel(‘Epochs‘)
15     ax1.set_ylabel(‘Loss‘)
16     ax1.set_title(‘Loss on Training and Validation Data‘)
17     ax1.legend()
18     # subplot acc
19     ax2 = fig.add_subplot(122)
20     ax2.plot(acc,label=‘train_acc‘)
21     ax2.plot(val_acc,label=‘val_acc‘)
22     ax2.set_xlabel(‘Epochs‘)
23     ax2.set_ylabel(‘Accuracy‘)
24     ax2.set_title(‘Accuracy  on Training and Validation Data‘)
25     ax2.legend()
26     plt.tight_layout()

第二步:

1 # train the model
2 hist = model.fit(...)

第三步:

1 # call the function
2 training_vis(hist)

原文地址:https://www.cnblogs.com/tectal/p/9426994.html

时间: 2024-10-09 14:24:37

在Keras中使用tensorboard可视化acc等曲线的相关文章

学习TensorFlow,TensorBoard可视化网络结构和参数

在学习深度网络框架的过程中,我们发现一个问题,就是如何输出各层网络参数,用于更好地理解,调试和优化网络?针对这个问题,TensorFlow开发了一个特别有用的可视化工具包:TensorBoard,既可以显示网络结构,又可以显示训练和测试过程中各层参数的变化情况.本博文分为四个部分,第一部分介绍相关函数,第二部分是代码测试,第三部分是运行结果,第四部分介绍相关参考资料. 一. 相关函数 TensorBoard的输入是tensorflow保存summary data的日志文件.日志文件名的形式如:e

Tensorflow实战 手写数字识别(Tensorboard可视化)

一.前言 为了更好的理解Neural Network,本文使用Tensorflow实现一个最简单的神经网络,然后使用MNIST数据集进行测试.同时使用Tensorboard对训练过程进行可视化,算是打响学习Tensorflow的第一枪啦. 看本文之前,希望你已经具备机器学习和深度学习基础. 机器学习基础可以看我的系列博文: https://cuijiahua.com/blog/ml/ 深度学习基础可以看吴恩达老师的公开课: http://mooc.study.163.com/smartSpec/

Tensorflow学习笔记3:TensorBoard可视化学习

TensorBoard简介 Tensorflow发布包中提供了TensorBoard,用于展示Tensorflow任务在计算过程中的Graph.定量指标图以及附加数据.大致的效果如下所示, TensorBoard工作机制 TensorBoard 通过读取 TensorFlow 的事件文件来运行.TensorFlow 的事件文件包括了你会在 TensorFlow 运行中涉及到的主要数据.关于TensorBoard的详细介绍请参考TensorBoard:可视化学习.下面做个简单介绍. Tensorf

第20章 keras中“开箱即用”CNNs

第20章 keras中"开箱即用"CNNs 到目前为止,我们学习了如何从头开始训练CNNs.这些CNNs大多数工作在浅层(以及较小数据集上),以至于它们可以很容易的在CPU上训练,而不需要在更贵的GPU上,这使得我们能够掌握神经网络和深度学习的基础. 但是由于我们只在浅层网络上工作,我们无法利用深度学习带给我们的全分类能力.幸运的是,keras库预置了5种在ImageNet数据集上预训练的CNNs: l  VGG16 l  VGG19 l  ResNet50 l  Inception

keras中的loss、optimizer、metrics

用keras搭好模型架构之后的下一步,就是执行编译操作.在编译时,经常需要指定三个参数 loss optimizer metrics 这三个参数有两类选择: 使用字符串 使用标识符,如keras.losses,keras.optimizers,metrics包下面的函数 例如: sgd = SGD(lr=0.01, decay=1e-6, momentum=0.9, nesterov=True) model.compile(loss='categorical_crossentropy', opt

tensorboard可视化遇到的问题

由于 TensorFlow版本差异,经常会报模块对象没有某属性的错误,先把tensorboard可视化过程遇到的几个报错解决方案记录如下: 1. AttributeError: 'module' object has no attribute 'histogram_summary' histogram_summary 改为:tf.summary.histogram 2. AttributeError: 'module' object has no attribute 'scalar_summar

keras中的mask操作

使用背景 最常见的一种情况, 在NLP问题的句子补全方法中, 按照一定的长度, 对句子进行填补和截取操作. 一般使用keras.preprocessing.sequence包中的pad_sequences方法, 在句子前面或者后面补0. 但是这些零是我们不需要的, 只是为了组成可以计算的结构才填补的. 因此计算过程中, 我们希望用mask的思想, 在计算中, 屏蔽这些填补0值得作用. keras中提供了mask相关的操作方法. 原理 在keras中, Tensor在各层之间传递, Layer对象

keras中使用预训练模型进行图片分类

keras中含有多个网络的预训练模型,可以很方便的拿来进行使用. 安装及使用主要参考官方教程:https://keras.io/zh/applications/   https://keras-cn.readthedocs.io/en/latest/other/application/ 官网上给出了使用 ResNet50 进行 ImageNet 分类的样例 from keras.applications.resnet50 import ResNet50 from keras.preprocess

keras中的shape/input_shape

在keras中,数据是以张量的形式表示的,张量的形状称之为shape,表示从最外层向量逐步到达最底层向量的降维解包过程.“维”的也叫“阶”,形状指的是维度数和每维的大小.比如,一个一阶的张量[1,2,3]的shape是(3,); 一个二阶的张量[[1,2,3],[4,5,6]]的shape是(2,3);一个三阶的张量[[[1],[2],[3]],[[4],[5],[6]]]的shape是(2,3,1) input_shape就是指输入张量的shape.例如,input_dim=784,dim是指