tensorboard入门
Tensorboard
tensorboard用以图形化展示我们的代码结构和图形化训练误差等,辅助优化程序
tensorboard实际上是tensorflow机器学习框架下的一个工具,需要先安装tensorflow,参考: https://www.cnblogs.com/maskerk/p/9973503.html 的安装过程。
本文tensorboard功能参考链接:www.cnblogs.com/fydeblog/p/7429344.html
微代码测试
代码全文
import tensorflow as tf
with tf.name_scope('graph') as scope:
a = tf.constant([[3,4]],name = 'a')
b = tf.constant([[5],[6]],name = 'b')
product = tf.matmul(a,b,name='product')
sess = tf.Session()
writer = tf.summary.FileWriter('./tensorflow/',sess.graph)
init = tf.global_variables_initializer()
sess.run(init)
启动tensorboard
运行代码之后可以在目录./tensorboard/ 下看到生成了一个文件,用于启动tensorboard。执行tensorboard --logdir ./tensorflow/,打开浏览器127.0.0.1:6006 ,可以看到视图
注:要保证该文件夹下只有一个文件

双击graph可以进一步打开,这就是我们这段微代码的结构

进阶
这里我们基于之前的一段代码,与tensorboard相结合来看下效果。
前文链接:https://www.cnblogs.com/maskerk/p/9973503.html
代码全文
import tensorflow as tf
import matplotlib.pyplot as plt
import numpy as np
#样本数据
with tf.name_scope('sample-data'):
x_train = np.linspace(-1,1,300)[:,np.newaxis]
noise = np.random.normal(0, 0.1, x_train.shape)
y_train = x_train * 3 + noise + 0.8
#
with tf.name_scope('hold-data'):
x = tf.placeholder(tf.float32, [None, 1])
y = tf.placeholder(tf.float32, [None, 1])
#线性模型
with tf.name_scope('line-model'):
W = tf.Variable([0.1],dtype = tf.float32,name='W')
#添加变量W到tensorboard的Distributions下
tf.summary.histogram('Weight',W)
b = tf.Variable([0.1],dtype = tf.float32,name='b')
line_model = W * x + b
#添加变量b到tensorboard的Distributions下
tf.summary.histogram('bias',b)
#损失模型
with tf.name_scope("loss-model"):
loss = tf.reduce_sum(tf.square(line_model - y))
#添加变量loss到tensorboard的Scalars下
tf.summary.scalar("loss",loss)
#创建优化器
with tf.name_scope("optimizer-model"):
optimizer = tf.train.GradientDescentOptimizer(0.001)
train = optimizer.minimize(loss)
#初始化变量
with tf.name_scope("init-model"):
init = tf.global_variables_initializer()
sess = tf.Session()
sess.run(init)
# 绘制样本数据
fig = plt.figure()
ax = fig.add_subplot(1,1,1)
ax.scatter(x_train, y_train)
plt.ion()
plt.show()
plt.pause(1)
#将所有的summary全部保存磁盘
merged = tf.summary.merge_all()
#tensorboard所需数据写入文件
writer = tf.summary.FileWriter('./tensorflow/',sess.graph)
#训练100次
for i in range(100):
if i % 10 == 0:
#每隔10次打印1次成果
print(i)
print('W:%s b:%s' % (sess.run(W),sess.run(b)))
print('loss:%s' % (sess.run(loss,{x:x_train,y:y_train})))
#绘制拟合直线
try:
ax.lines.remove(lines[0])
except Exception:
pass
lines = ax.plot(x_train, sess.run(W)*x_train+sess.run(b), 'r-', lw=5)
plt.pause(1)
sess.run(train,{x:x_train,y:y_train})
#向tensorboard添加数据
rs = sess.run(merged,{x:x_train,y:y_train})
writer.add_summary(rs,i)
# 打印训练100次后的成果
print('---')
print('W:%s b:%s' % (sess.run(W),sess.run(b)))
print('loss:%s' % (sess.run(loss,{x:x_train,y:y_train})))
相比前文,这里添加了两部分
1.拟合直线的动态变化图像

2.tensorboard展现数据变化过程
启动tensorboard
tensorboard --logdir ./tensorflow/
可以看到loss(误差大小)的变化曲线

权重值W和偏差b的变化曲线(y = W * x + b)

tensorboard入门的更多相关文章
- TensorFlow深度学习笔记 Tensorboard入门
转载请注明作者:梦里风林 Github工程地址:https://github.com/ahangchen/GDLnotes 欢迎star,有问题可以到Issue区讨论 官方教程: https://ww ...
- Pytorch入门上 —— Dataset、Tensorboard、Transforms、Dataloader
本节内容参照小土堆的pytorch入门视频教程.学习时建议多读源码,通过源码中的注释可以快速弄清楚类或函数的作用以及输入输出类型. Dataset 借用Dataset可以快速访问深度学习需要的数据,例 ...
- 超简单tensorflow入门优化程序&&tensorboard可视化
程序1 任务描述: x = 3.0, y = 100.0, 运算公式 x×W+b = y,求 W和b的最优解. 使用tensorflow编程实现: #-*- coding: utf-8 -*-) im ...
- Tensorflow机器学习入门——网络可视化TensorBoard
一.在代码中标记要显示的各种量 tensorboard各函数的作用和用法请参考:https://www.cnblogs.com/lyc-seu/p/8647792.html import tensor ...
- TensorFlow文档翻译-01-TensorFlow入门
版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/junyang/p/7429771.html TensorFlow入门 英文原文地址:https://w ...
- TensorFlow 中文资源全集,官方网站,安装教程,入门教程,实战项目,学习路径。
Awesome-TensorFlow-Chinese TensorFlow 中文资源全集,学习路径推荐: 官方网站,初步了解. 安装教程,安装之后跑起来. 入门教程,简单的模型学习和运行. 实战项目, ...
- 什么是TensorBoard?
前言 只有光头才能变强. 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y 回顾前面: 从零开始学TensorFlow[01-搭 ...
- 学习笔记CB013: TensorFlow、TensorBoard、seq2seq
tensorflow基于图结构深度学习框架,内部通过session实现图和计算内核交互. tensorflow基本数学运算用法. import tensorflow as tf sess = tf.S ...
- 机器学习入门 - Google的机器学习速成课程
1 - MLCC 通过机器学习,可以有效地解读数据的潜在含义,甚至可以改变思考问题的方式,使用统计信息而非逻辑推理来处理问题. Google的机器学习速成课程(MLCC,machine-learnin ...
随机推荐
- ionic ios 打包发布流程
1.ionic cordova resources ios 在windows下 生成ios资源包 2.拷贝ionic 项目到mac电脑 不用拷贝platforms 并解压 3.正常情况下wido ...
- Redis数据库 : 基础
设置密码: /etc/redis/redis.conf 文件把 requirepass 取消注释并设置密码 取消只能本地登录的bind 同上面的配置文件 把 bind一行注释掉 带密码登录: redi ...
- 显示youtube视频缩略图和Vimeo视频缩略图代码分享
这篇文章主要介绍了显示youtube视频缩略图和Vimeo视频缩略图的代码,需要的朋友可以参考下 function video_image($url){ $image_url = parse_url( ...
- Hbase(1)-MySQL海量数据存储的启发
宽表拆分 有一张user表,记录了用户的信息,,如果表中的列有很多,就称之为宽表,为了提升效率,会进行垂直拆分 拆分后 将用户的信息分为基本信息和其他信息,页面一开打就需要展示的信息为基本信息,其他信 ...
- golang 防SQL注入 基于反射、TAG标记实现的不定参数检查器
收到一个任务,所有http的handler要对入参检查,防止SQL注入.刚开始笨笨的,打算为所有的结构体写一个方法,后来统计了下,要写几十上百,随着业务增加,以后还会重复这个无脑力的机械劳作.想想就l ...
- 《浅析Entity Framework Core中的并发处理》引起的思考
看到一篇关于EF并发处理的文章,http://www.cnblogs.com/GuZhenYin/p/7761352.html,突然觉得为什么常见业务中为什么很少做并发方面的考虑.结合过去的项目,这样 ...
- Oracle入门第三天(下)——子查询
一.子查询 1.子查询语法 SELECT select_list FROM table WHERE expr operator (SELECT select_list FROM table) 示例: ...
- 2017-2018-1 20155307 《信息安全系统设计基础》第san周学习总结
2017-2018-1 20155307 <信息安全系统设计基础>第三周学习总结 教材学习内容总结 无符号数和有符号数的特性,数字如何表示,IEEE标准,浮点数格式.(我感觉我把课下测试做 ...
- 20155308 2016-2017-2 《Java程序设计》第10周学习总结
20155308 2016-2017-2 <Java程序设计>第10周学习总结 教材学习内容总结 网络概述 计算机网络:通过一定的物理设备将处于不同位置的计算机连接起来组成的网络,这个网络 ...
- Dlib简介及在windows7 vs2013编译过程
Dlib是一个C++库,包含了许多机器学习算法.它是跨平台的,可以应用在Windows.Linux.Mac.embedded devices.mobile phones等.它的License是Boos ...