什么是TensorBoard?
Tensorboard是可视化图形界面。并包含理解,调试和优化模型的其他工具。
图片.png- Scalars:在模型训练期间显示不同的有用信息
- Graphs:显示模型
- Histogram:使用直方图显示权重
- Distribution:显示权重分布
- Projector 显示主成分分析和T-SNE算法。该技术用于降维
如果查看图表,可以了解模型的工作原理。
- 数据排队模型:将等于批量大小的数据量推送到模型,即每次迭代后的数据馈送数量
- 将数据提供给Tensors
- 训练模型
- 显示训练期间的批次数。将模型保存在磁盘上。
tensorboard背后的基本思想是神经网络为黑盒子,我们需要工具来检查这个盒子里面的东西。您可以将tensorboard想象成一个手电筒。
它有助于理解操作之间的依赖关系,如何计算权重,显示损失函数和许多其他有用信息。当您将所有这些信息组合在一起时,您就拥有了很好的工具来调试并改进模型。
图片.png神经网络决定如何在模型预测结果之前连接不同的“神经元”和多少层。一旦定义了体系结构,您不仅需要训练模型,还需要使用度量来计算预测的准确性。该度量被称为损失函数。目标是最小化损失函数。换句话说,这意味着模型减少了错误。所有机器学习算法将重复多次计算,直到损失达到更平坦的线。要最大限度地减少此丢失功能,您需要定义学习率。这是您希望模型学习的速度。如果您将学习率设置得太高,则模型没有时间学习任何东西。左图是这种情况。线条正在上下移动,这意味着模型预测纯粹的猜测结果。右图显示损失在迭代中逐渐减少,直到曲线变平,这意味着模型找到了解决方案。
TensorBoard是一个很好的工具,可以显示这些指标并突出潜在的问题。神经网络在找到解决方案之前可能需要数小时到数周。
TensorBoard经常更新指标。在这种情况下,您无需等到最后才能看到模型是否正确训练。您可以打开TensorBoard检查训练的进展情况,并在必要时进行适当的更改。
参考资料
- 讨论qq群144081101 591302926 567351477 钉钉群21745728
- 本文最新版本地址
- 本文涉及的python测试开发库 谢谢点赞!
- 本文相关海量书籍下载
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
网友评论