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

Posted tectal

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在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)

以上是关于在Keras中使用tensorboard可视化acc等曲线的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Keras 的 Tensorboard 回调?

TensorBoard 的 Keras Tuner Trials 目录的命名

恢复培训 tf.keras Tensorboard

Keras保存最好的模型

执行多次运行时如何使用 Keras 保留纪元数?

使用 keras 在 tensorboard 中显示分类图像