先学习几个英文单词

summary  汇总,摘要

scope    范围

我这是很早以前的笔记,后来有了博客才发布的,有些内容比较老,懒得改了。 

先说明总体流程

暂时不管怎么编程,假设已经有了如下代码,可执行的。

# encoding:utf-8
import tensorflow as tf print('version:', tf.__version__)
foo = tf.Variable(3, name='foo')
bar = tf.Variable(2, name='bar')
result = tf.add(foo, bar, name='add')
# 初始化变量
init = tf.global_variables_initializer()
# 启动图 (graph)
sess = tf.Session()
sess.run(init)
res = sess.run(result)
print('result:', res)
train_writer = tf.summary.FileWriter('log2', sess.graph)

可视化效果,先感性认识一下

可视化简要步骤

1.运行该代码

  // 此时在log2中已经生成文件

2.启动可视化工具

  a. 找到tensorflow下的tensorboard.py文件,运行该文件,python tensorboard.py --logdir=...../log2/    注意这里的路径和代码里的路径要一致 (这是老版本的)

  b. 直接运行 tensorboard --host=10.10.101.2 --port=6099 --logdir="my_graph"  

    // tensorBoard 不需要额外的安装,在tensorflow安装完成时,TensorBoard会被自动安装

    // port host 可有可无

    // 目录不带引号

3. 在浏览器中 访问 localhost:6006,点击graphs,即可看到

4. 注意每运行一次代码就要重启这个工具

详细说明

1. 数据序列化

tf可视化实际上是把运算数据序列化到本地,然后用浏览器加载这些数据

这个本地文件叫 ‘事件文件’,通过tensorboard来读取

weights = tf.Variable(tf.random_normal([3,2]), name='w')
sess = tf.Session()
writer = tf.summary.FileWriter('log2', sess.graph)    # 序列化

SummaryWriter 两个参数,第一个参数是序列化的地址,第二个参数可选,如果输入了该参数,tensorboard就会显示图像。

2. 名字的作用域 scope

tf.name_scope() 会创建一个作用域,该作用域下的变量名都会加上该作用域的名字

with tf.name_scope('test'):
weights = tf.Variable(tf.random_normal([3,2]), name='w') sess = tf.Session()
writer = tf.summary.FileWriter('log2', sess.graph)

以上两步基本上就可以实现画图了

但是可视化不止画图

3.可视化内容

1. events 就是那些变量, 序列化后存到本地

  // 通过向节点附加 scalar_summary 操作来输出变量

2. graphs 就是图,图里只有网络结构,没有数据

3. histograms 是直方图,把数据画成直方图

  // 通过向节点附加 histogram_summary 操作来输出直方图

这其实都是先存数据,再可视化,所以也是需要在绘画中执行,那么如果你想输出很多数据,就需要在会话中挨个输出,很麻烦

tf 提供了一个合并操作,就是将这些输出合并,在会话中一次性全部输出,接口 tf.merge_all_summaries()

# coding:utf-8
import tensorflow as tf
import numpy as np # 此代码仅用于可视化 x_data = np.random.rand(100).astype("float32") with tf.name_scope('y_data'):
y_data = x_data * 2.5 + 0.8
# tf.histogram_summary("method_demo"+"/y_data",y_data)
tf.summary.histogram("method_demo"+"/y_data",y_data) with tf.name_scope('W'):
W = tf.Variable(tf.random_uniform([1], -200.0, 200.0))
tf.summary.histogram("method_demo"+"/W",W) with tf.name_scope('b'):
b = tf.Variable(tf.zeros([1]))
tf.summary.histogram("method_demo"+"/b",b) with tf.name_scope('y'):
y = W * x_data + b
tf.summary.histogram("method_demo"+"/y",y) # 最小化均方
with tf.name_scope('loss'):
loss = tf.reduce_mean(tf.square(y - y_data))
tf.summary.histogram("method_demo"+"/loss",loss)
tf.summary.scalar("method_demo222"+'loss',loss) optimizer = tf.train.GradientDescentOptimizer(0.7)
with tf.name_scope('train'):
train = optimizer.minimize(loss) init = tf.global_variables_initializer() sess = tf.Session() #合并到Summary中
merged = tf.summary.merge_all() #选定可视化存储目录
writer = tf.summary.FileWriter('log2',sess.graph) sess.run(init) # 开始计算
for step in range(500):
sess.run(train)
# tf.histogram_summary('method_demo'+'/train',train)
if step % 5 == 0:
print(step, "W:",sess.run(W),"b:", sess.run(b)) result = sess.run(merged) #merged也是需要run的
writer.add_summary(result,step) #result是summary类型 (result 纵坐标 step 横坐标)

运行 tensorboard,即可在浏览器访问

异常记录

1. InvalidArgumentError (see above for traceback): You must feed a value for placeholder tensor 'input/input_y' with dtype float and shape [100,1]

这个问题我查了好久,各种回答都有,都验证无效,解决方案见代码

# 以下皆可
merged = tf.summary.merge_all()
# merged = tf.summary.merge([loss_scalar]) writer = tf.summary.FileWriter('logs', sess.graph) sess.run(init)
for i in range(1000):
loss2, _ = sess.run([loss, optimizer], feed_dict={input_x:x[:, np.newaxis], input_y:y[:, np.newaxis]}) # result = sess.run(merged) # 这样写报错
# InvalidArgumentError (see above for traceback): You must feed a value for placeholder tensor 'input/input_y' with dtype float and shape [100,1]
result = sess.run(merged, feed_dict={input_x:x[:, np.newaxis], input_y:y[:, np.newaxis]}) writer.add_summary(result, i)

需要喂参数

tensorflow-可视化的更多相关文章

  1. 一个简单的TensorFlow可视化MNIST数据集识别程序

    下面是TensorFlow可视化MNIST数据集识别程序,可视化内容是,TensorFlow计算图,表(loss, 直方图, 标准差(stddev)) # -*- coding: utf-8 -*- ...

  2. AI - TensorFlow - 可视化工具TensorBoard

    TensorBoard TensorFlow自带的可视化工具,能够以直观的流程图的方式,清楚展示出整个神经网络的结构和框架,便于理解模型和发现问题. 可视化学习:https://www.tensorf ...

  3. tensorboard实现tensorflow可视化

    1.工程目录 2.data.input_data.py的导入 在tensorflow更新之后可以进行直接的input_data的导入 # from tensorflow.examples.tutori ...

  4. Tensorflow可视化MNIST手写数字训练

    简述] 我们在学习编程语言时,往往第一个程序就是打印“Hello World”,那么对于人工智能学习系统平台来说,他的“Hello World”小程序就是MNIST手写数字训练了.MNIST是一个手写 ...

  5. 深度学习-CNN tensorflow 可视化

    tf.summary模块的简介 在TensorFlow中,最常用的可视化方法有三种途径,分别为TensorFlow与OpenCv的混合编程.利用Matpltlib进行可视化.利用TensorFlow自 ...

  6. Tensorflow可视化-P295-Tensorboard可视化

    各模块含义 1>表示一个Batch的大小是不确定的 2>当两个节点之间传输的张量多与1时,可视化效果图将只显示张量的个数 3>效果图上的粗细表示两个节点之间传输的标量维度的总大小,而 ...

  7. Tensorboard教程:Tensorflow命名空间与计算图可视化

    Tensorflow命名空间与计算图可视化 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考文献 强烈推荐Tensorflow实战Google深度学习框架 实验平台: Tensorflow ...

  8. TensorFlow高级API(tf.contrib.learn)及可视化工具TensorBoard的使用

    一.TensorFlow高层次机器学习API (tf.contrib.learn) 1.tf.contrib.learn.datasets.base.load_csv_with_header 加载cs ...

  9. TensorFlow实战第四课(tensorboard数据可视化)

    tensorboard可视化工具 tensorboard是tensorflow的可视化工具,通过这个工具我们可以很清楚的看到整个神经网络的结构及框架. 通过之前展示的代码,我们进行修改从而展示其神经网 ...

  10. tensorflow笔记(一)之基础知识

    tensorflow笔记(一)之基础知识 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7399701.html 前言 这篇no ...

随机推荐

  1. navicat和 plsql 连接oracle数据库 总结

    打开 navicat  -->工具-->选项-->oci   右侧选择oci.dll 的路径 默认 在 navicat的安装目录下有一个 instantclient 的文件夹 直接选 ...

  2. HDOJ-1156 Brownie Points II 线段树/树状数组(模板)

    http://acm.hdu.edu.cn/showproblem.php?pid=1156 在一张二位坐标系中,给定n个点的坐标,玩一个划线游戏(线必须穿过点),Stan先手画一条垂直的线,然后Ol ...

  3. Rest_framework 和路由配置(一)

    简介 Django REST framework是一个建立在Django基础之上的Web 应用开发框架,可以快速的开发REST API接口应用. Rest_framework 核心思想: 缩减代码. ...

  4. apiCloud 双击事件

    apiCloud 双击事件只能使用纯js去写 var app = new Vue({ el: "#app", data: function() { return { token: ...

  5. 【洛谷p1319】压缩技术

    (许久不见,甚是想念) 压缩技术[传送门] 洛谷上滴算法标签: 然而这是一道入门难度的题.(不管不管,就写它了) 好的先说一下思路吧wait!我忘记了咋做的当时. 首先做题第一道坎儿,如何输入若干个( ...

  6. 廖雪峰网站:学习python基础知识—循环(四)

    一.循环 1.for names = ['Michal', 'Bob', 'tracy'] for name in names: print(name) sum = 0 for x in [1, 2, ...

  7. 『计算机视觉』Mask-RCNN_推断网络其五:目标检测结果精炼

    一.Detections网络 经过了ROI网络,我们已经获取了全部推荐区域的信息,包含: 推荐区域特征(ROIAlign得到) 推荐区域类别 推荐区域坐标修正项(deltas) 再加上推荐区域原始坐标 ...

  8. 解决spring-boot启动异常Unable to start EmbeddedWebApplicationContext due to missing EmbeddedServletContainerFactory bean

    第一种: 需要在主类头加上  @EnableAutoConfiguration 第二种: pom文件是否加了 <dependency> <groupId>org.mybatis ...

  9. [洛谷 P2508] 圆上的整点

    题目描述 求一个给定的圆(x^2+y^2=r^2),在圆周上有多少个点的坐标是整数. 输入输出格式 输入格式: r 输出格式: 整点个数 输入输出样例 输入样例#1: 4 输出样例#1: 4 说明 n ...

  10. Utils--前台调用后台接口工具类

    Utils--前台调用后台接口工具类 package com.taotao.manage.httpclient; import java.io.IOException; import java.net ...