TensorBoard引起的AttributeError: ‘Sequential‘ object has no attribute ‘run_eagerly‘问题

目录

报错提示:

原因:

解决:

拓展:


报错提示:

AttributeError: 'Sequential' object has no attribute 'run_eagerly'
 

原因:

创建TensorBoard对象的写法有误

错误写法:

tb_Tensorboard=tf.keras.callbacks.TensorBoard()

前提:你导入tensorflow包的写法可能是这样: 

import tensorflow as tf

 注意:这里完全不需要tensorflow介入,我当时出这个问题时查资料,有一些博文都说什么keras版本和tensorflow版本冲突,跟这个没啥关系

 

解决:

正确写法:

tb_Tensorboard=TensorBoard()

注意:如果你的tensorflow和tensorboard版本不一致,我当时用的tensorflow是2.0.0,tensorboard是2.0.2,这样会导致tensorboard中有些参数用不了,例如:weight_grads,不过即便你写上去了 pycharm也只是给个警告,也不会影响你其他参数

 

拓展:

1、你找的大多数参数写法或者可视化后的图像可能都是基于epoch而生成的,即每个epoch对应的acc/val_acc/loss/val_loss/……,但对于我们学生党而言,在数据量较大的前提下,当batch_size到你的极限(我最大也就128),在比较浅层的网络里完成一次epoch可能也要近10分钟,如果你配置高当我没说,所以我们的epoch不会设置的太大,这时候可视化的图像可参考的数据非常少,你epoch为N,每组得到的数据也就是N个,几乎没有参考价值,不过不用担心,TensorBoard帮你想到了这个问题,它里边有一个参数:update_fre,这个参数你如果不赋值,默认是'epoch',他还可以设置成'batch',顾名思义,这时候你可视化的图像横坐标就是每次迭代(每次batch_size)对应的acc/val_acc/loss/val_loss/……,这样数据量瞬间上来了,他还能设置为一个整数,其含义同理。

2、第二个需要注意的参数是:histogram_fre,他设为1表示会把一些直方图写入文件,反之,设为0,……。要说明的是,如果你觉得可以牺牲一点训练时间,后面会用到直方图进行数据分析,那你最终生成的那个文件就会很大;如果那个直方图对你用处不大,你大可设置为0,因为,其区别就是有无直方图,对我们最关键的最有帮助的那些参数该有的都会有,包括模型结构图,都会有,所以,看你自己权衡。

你可能感兴趣的:(深度学习之CNN,tensorflow,可视化)