Tensorboard的使用---史上最全总结---持续更新

Tensorboard

1. 目的:

当我们训练深度神经网络的时候,一个很棘手的问题就是对于各种网络结构和超参数的选择产生的影响缺乏理解。例如,如果我们忽视权重初始化方式的选择,可能会导致权重之间存在非常大的方差,模型的训练就有可能迅速偏离正轨。另一方面,即使我们在参数选择的时候很小心,也免不了会出问题。比如学习率的选择,过大或过小的学习率会导致模型发散或者掉入局部最优点。然而并没有永远合适的学习率,这些都需要根据观察训练过程来作出合适的选择。

一个快速定位模型问题的方法就是通过观察模型训练过程的变化,这也是TensorBoard应用的场景。我们可以决定在TensorBoard中展示哪些值(这取决于你写的代码),这些值随训练时间的历史变化就会被记录下来,供给我们分析判断,帮助我们把复杂的神经网络训练过程进行可视化,使得我们可以更好地理解,调试,并优化程序。

2. TensorBoard的用法:

如何启动TensorBoard?

Linux系统下命令行执行tensorBoard

--logdir=summaries # 里面有event文件的那个目录
# --logdir后面是tensorflow的summary所在的目录,这里面包含event文件,
# event文件保存了TensorBoard展示需要的数据。

这些数据在程序上解读的话,就是对应代码里放进tensorflow summary中的数据。tf.summary
启动后,终端会输出查看TensorBoard的url, 在Web浏览器中打开该url就可以看到TensorBoard的面板了。

2.1 可视化scalar(标量)数据类型:

这块可视化的就是:scalar值,可以看作是Shape为(1,1)的值,不对吧,应该是形状为(,)的值。反正就是标量数据,就比如: 分类准确率(accuracy), 那loss应该也是在这看的,对不对?

  • 观察training loss

  • 观察validation loss

    第一点:
    if the validation loss going to increase that means overfitting. You should set the number of epochs as high as possible and avoid the overfitting. 一旦validation loss开始增加,就说明在训练集上已经过拟合了,也就是太过适应训练集,但是却不够泛化,在validation set上就出事了,出事的表现就是validation loss增加。

2.2 利用Histogram来可视化Vector或者数据集合

2.3 通过Histogram来比较不同的权重初始化对于神经网络训练时权重更新的影响

你可能感兴趣的:(工具,深度学习)