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

作者: python测试开发 | 来源:发表于2018-11-22 07:16 被阅读35次

    什么是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
    # 技术支持 钉钉群:21745728(可以加钉钉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

    相关文章

      网友评论

        本文标题:TensorFlow工具快速入门教程8 TensorBoard简

        本文链接:https://www.haomeiwen.com/subject/erjkqqtx.html