使用tensorboard将keras的训练过程显示出来(动态的、直观的)是一个绝好的主意,特别是在有架设好的VPS的基础上,这篇文章就是一起来实现这个过程。
一、主要原理
keras的在训练(fit)的过程中,显式地生成log日志;使用tf的tensorboard来解析这个log日志,并且通过网站的形式显示出来。
fit的时候加上callbacks=[TensorBoard(log_dir='./tmp/log')] 将运行的结果保存在'./tmp/log'下。
执行tensorboard 命令的时候指明: --logdir=./temp/log
二、实现步骤
我们需要选择一段运行绝对正确,而且需要一定时间的算法:使用keras自己提供的“cifar10_cnn.py”运行一个比较多的
epoch是很行的选择。它使用的是
# Fit the model on the batches generated by datagen.flow().
model.fit_generator(datagen.flow(x_train, y_train,
batch_size=batch_size),
epochs=epochs,
validation_data=(x_test, y_test),
workers=
4)
我不知道是否有效,将其修改为:
model.fit_generator(datagen.flow(x_train, y_train,
batch_size=batch_size),
epochs=epochs,
validation_data=(x_test, y_test),
workers=
4,
callbacks=[TensorBoard(
log_dir=
'./tmp/log')])
并且运行

很遗憾,在1024mb的vps上面,cifar_10跑不起来,最后还是选择跑mnist

开启tensorboard

需要注意的是,这里所有的操作都是在
~/keras/examples 目录下进行的,有绝对地址的说法
三、观察结果
本例中出现了2个项目,其他的都被隐藏起来了

用这种方法来看曲线是很直观的

也可以看出函数模型

后面就是tensorboard的应用问题,但是它和keras的结合,使用本文中相关知识就可以解决了,感谢阅读,希望有所帮助。
目前方向:图像拼接融合、图像识别 联系方式:jsxyhelu@foxmail.com