TensorFlow工具快速入门教程8 TensorBoard简介

什么是TensorBoard?

Tensorboard是可视化图形界面。并包含理解,调试和优化模型的其他工具。

图片.png

  • Scalars:在模型训练期间显示不同的有用信息
  • Graphs:显示模型
  • Histogram:使用直方图显示权重
  • Distribution:显示权重分布
  • Projector 显示主成分分析和T-SNE算法。该技术用于降维

如果查看图表,可以了解模型的工作原理。

  • 数据排队模型:将等于批量大小的数据量推送到模型,即每次迭代后的数据馈送数量
  • 将数据提供给Tensors
  • 训练模型
  • 显示训练期间的批次数。将模型保存在磁盘上。

图片.png

tensorboard背后的基本思想是神经网络为黑盒子,我们需要工具来检查这个盒子里面的东西。您可以将tensorboard想象成一个手电筒。

它有助于理解操作之间的依赖关系,如何计算权重,显示损失函数和许多其他有用信息。当您将所有这些信息组合在一起时,您就拥有了很好的工具来调试并改进模型。

图片.png

神经网络决定如何在模型预测结果之前连接不同的“神经元”和多少层。一旦定义了体系结构,您不仅需要训练模型,还需要使用度量来计算预测的准确性。该度量被称为损失函数。目标是最小化损失函数。换句话说,这意味着模型减少了错误。所有机器学习算法将重复多次计算,直到损失达到更平坦的线。要最大限度地减少此丢失功能,您需要定义学习率。这是您希望模型学习的速度。如果您将学习率设置得太高,则模型没有时间学习任何东西。左图是这种情况。线条正在上下移动,这意味着模型预测纯粹的猜测结果。右图显示损失在迭代中逐渐减少,直到曲线变平,这意味着模型找到了解决方案。

TensorBoard是一个很好的工具,可以显示这些指标并突出潜在的问题。神经网络在找到解决方案之前可能需要数小时到数周。

TensorBoard经常更新指标。在这种情况下,您无需等到最后才能看到模型是否正确训练。您可以打开TensorBoard检查训练的进展情况,并在必要时进行适当的更改。

参考资料

TensorBoard快速入门

代码:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# Author:    xurongzhong#126.com wechat:pythontesting qq:37391319
# 技术支持 (可以加钉钉pythontesting邀请加入) 
# qq群:144081101 591302926  567351477
# CreateDate: 2018-11-21
import numpy as np
import tensorflow as tf

X_train = (np.random.sample((10000,5)))
y_train =  (np.random.sample((10000,1)))
X_train.shape

feature_columns = [
    tf.feature_column.numeric_column('x', shape=X_train.shape[1:])]
DNN_reg = tf.estimator.DNNRegressor(feature_columns=feature_columns,
# Indicate where to store the log file    
     model_dir='train/linreg',    
     hidden_units=[500, 300],    
     optimizer=tf.train.ProximalAdagradOptimizer(      
          learning_rate=0.1,      
          l1_regularization_strength=0.001    
      )
)

# Train the estimator
train_input = tf.estimator.inputs.numpy_input_fn(    
     x={"x": X_train},    
     y=y_train, shuffle=False,num_epochs=None)
DNN_reg.train(train_input,steps=3000) 

执行 tensorboard --logdir=./train/linreg,就可以在网页打开tensorboard 。比如:http://172.20.16.98:6006。

图片.png

参考资料

links