tensorboard的简单使用
1.
首先保证你已有程序,下面是MLP实现手写数字分类模型的代码实现。
不懂的可以对照注释理解。
#输入数据是28*28大小的图片,输出为10个类别,隐层大小为300个节点
from tensorflow.examples.tutorials.mnist import input_data
import tensorflow as tf
mnist = input_data.read_data_sets("MNIST_data/",one_hot=True)
sess = tf.InteractiveSession()
x = tf.placeholder(dtype=tf.float32,shape=[None,784])
y_ = tf.placeholder(dtype=tf.float32,shape=[None,10])
image_reshaped_input = tf.reshape(x,[-1,28,28,1])
tf.summary.image('input',image_reshaped_input,10)
#tf.summary.image()用于将图像类型的tensor添加在Summary协议缓冲区中
#其本质就是将tensor统计存储,用于将来展示在tensorboard上
#在计算图中添加了一个新的节点,第一个参数是节点名称,第二个参数是接收的tensor
#第三个参数是最大存储的图像数目,此处指定为10,表明最多存储10个图像
#tf.summary.image()接受的tensor形状必须为[batch_size,height,width,channels],
#所以上面才对输入数据进行了reshape()操作
#channels为1时,图像被解析为灰度图,为3时解析为RGB图像,为4时解析为RGBA图像
W1 = tf.Variable(tf.truncated_normal([784,300],stddev=0.1))
b1 = tf.Variable(tf.zeros([300]))
hidden1 = tf.nn.relu(tf.matmul(x,W1)+b1)
keep_prob = tf.placeholder(tf.float32)
hidden1_drop = tf.nn.dropout(hidden1,keep_prob)
W2 = tf.Variable(tf.zeros([300,10]))
b2 = tf.Variable(tf.zeros([10]))
y = tf.nn.softmax(tf.matmul(hidden1_drop,W2)+b2)
cross_entropy = tf.reduce_mean(-tf.reduce_sum(y_*tf.log(y),reduction_indices=[1]))
tf.summary.scalar("cross_entropy",cross_entropy)
#tf.summary.scalar()用于将标量类型的tensor统计存储,形成折线图,用于可视化
#在计算图中添加了一个新的节点,第一个参数是节点名称,第二个参数是接收的tensor
train_step = tf.train.AdagradOptimizer(0.3).minimize(cross_entropy)
prediction_result = tf.argmax(y,1)
tf.summary.histogram("prediction_result",prediction_result)
#t.summary.histogram()用于将向量类型的tensor统计存储,形成直方图,用于可视化
#在计算图中添加了一个新的节点,第一个参数是节点名称,第二个参数是接收的tensor correct_prediction = tf.equal(tf.argmax(y_,1),prediction_result)
accuracy = tf.reduce_mean(tf.cast(correct_prediction,tf.float32))
tf.summary.scalar("accuracy",accuracy)
merged = tf.summary.merge_all()
#这一步操作的意义在于:如前所述,所有的summary操作本质上是graph中的一个节点
#tensorflow程序运行的时候,由于计算其他的变量不需要用到summary的结果,所以需要指定运行每一个summary
#如如果程序中定义了多个summary,那么每一个summary都需要运行一次,写起来太麻烦
#tf.summary.merge_all()可以将所有的summary操作拼成一个,这样只需要运行一次即可
writer = tf.summary.FileWriter("./logs",sess.graph)
#这一步将计算图以event文件的格式存入了./logs文件夹当中
#注意此时会话尚未开始执行,所有变量也都未初始化,所以实际上之前定义的summary还统计不到任何信息
tf.global_variables_initializer().run()
for i in range(3000):
batch_xs,batch_ys = mnist.train.next_batch(100)
_,summary = sess.run((train_step,merged),feed_dict={x:batch_xs,y_:batch_ys,keep_prob:0.75})
#需要对merged的所有summary执行sess.run()的操作,才可以确保数据流入了统计图中
writer.add_summary(summary,i)
#writer的add_summary()方法将某一个step的summary统计结果添加到了event文件中,i是step数
#这里实际上就是将每一个step的数据都添加到了event文件当中
#由此我们也理解了summary起到的统计的作用,实际上其统计的就是某一个tensor在不同的时刻的值的变化情况
#tf.summary.scalar将标量统计为折线图,tf.summary.histogram将向量统计为直方图
print("The final resultis"+str(accuracy.eval({x:mnist.test.images,y_:mnist.test.labels,keep_prob:1.0})))
2.跑完程序后到程序当前目录下log文件夹找到 文件events.

3.这一步是启动TensorBoard:
复制上面的路径,win10下打开Powershell ,输入:
tensorboard --logdir 上面的路径

4. 然后打开浏览器,我的是微软的edge浏览器,输入上面得到的网址:
http://localhost:
就得到了想要的图
------ ------------------------------------------------------------------------------------------------------分割线
如果在shell中只输入tensorboard命令就显示出错,则按以下步骤添加环境变量即可
1.搜索编辑系统环境变量

2.点环境变量,双击PATH

3.点击新建,把python路径添加进去,我的是anaconda下的Scripts,点进去复制上面的路径,新建添加的就是这个路径。
(图中最后一条)
再点击确定就行,这样就把环境变量添加好了,再输入tensorboard命令就不会出错了。


tensorboard的简单使用的更多相关文章
- Tensorboard 的简单使用
确保环境以及安装好tensorflow以及tensorboard 下面通过一个简单的例子来显示一下使用方式,一个向量加法的图结构. import tensorflow as tf a = tf.con ...
- 机器学习与Tensorflow(6)——LSTM的Tensorflow实现、Tensorboard简单实现、CNN应用
最近写的一些程序以及做的一个关于轴承故障诊断的程序 最近学习进度有些慢 而且马上假期 要去补习班 去赚下学期生活费 额.... 抓紧时间再多学习点 1.RNN递归神经网络Tensorflow实现程序 ...
- [Pytorch]PyTorch使用tensorboardX(转
文章来源: https://zhuanlan.zhihu.com/p/35675109 https://www.aiuai.cn/aifarm646.html 之前用pytorch是手动记录数据做图, ...
- Tensorflow模型加载与保存、Tensorboard简单使用
先上代码: from __future__ import absolute_import from __future__ import division from __future__ import ...
- 超简单tensorflow入门优化程序&&tensorboard可视化
程序1 任务描述: x = 3.0, y = 100.0, 运算公式 x×W+b = y,求 W和b的最优解. 使用tensorflow编程实现: #-*- coding: utf-8 -*-) im ...
- tensorboard简单使用
代码写的再好,没有图别人也不知道好在哪. 我们在使用tensorflow的时候,使用tensorboard可以直观的看到我们的网络结构,甚至它可以计算卷积和池化的维度(我不知道是不是因为我已经运行了一 ...
- 如何简单使用tensorboard展示(二)
我使用tensorboard继续做了标量展示与直方图展示,在一的基础做了拓展,其改写代码如下: import numpy as npimport tensorflow as tfimport rand ...
- 如何简单使用tensorboard展示(一)
我使用tensorboard中的graph做了展示,至于其它功能可以类推,其代码如下: import numpy as npimport tensorflow as tf x_img = np.arr ...
- Tensorflow学习笔记3:TensorBoard可视化学习
TensorBoard简介 Tensorflow发布包中提供了TensorBoard,用于展示Tensorflow任务在计算过程中的Graph.定量指标图以及附加数据.大致的效果如下所示, Tenso ...
随机推荐
- Scanner使用方法
import java.util.Scanner; //导入包 public void main (String args[]){ Scanner a=new Scanner(System.in); ...
- 一个由"2020年1月7日 京东出现的重大 Bug 漏洞"引起的思考...
2020年1月7日,京东由于优惠券设置错误,导致大量产品以0元或者超低价成交,并且发货.网传小家电被薅24万件,损失损失金额高达7000多万.很多网友表示收到货了,在网上晒出到货截图.下面为购买截图: ...
- js对象转换为json格式时,js对象属性中有值为null和undefined注意事项
当属性值为null时: 当属性值为undefined时: 只有当属性值为未定义时, js对象转换成json格式时会忽略该属性.
- APICloud打开三方地图整合
一直想系统的整理打开地图的方法,今天抽时间把了百度,高德,腾讯,苹果自带地图都整理出来了,闲话不多说,直接上干货 ------------------------------------------- ...
- cogs 1361. 树 线段树
1361. 树 ★ 输入文件:treed.in 输出文件:treed.out 简单对比时间限制:1 s 内存限制:128 MB [问题描述] 在一个凉爽的夏夜,xth和rabbit来到 ...
- Java配置文件读取中文乱码问题
背景 这是我之前在做的用友服务对接开发,昨天领导拿给财务测试时告诉我有乱码,当时我第一想法是用友那边的编码格式有问题,因为还在做其他任务,我说等问一下用友他们用的什么编码格式我们这边改一下,然后今天早 ...
- Spring(二)核心容器 - 简介 、BeanFactory、ApplicationContext
目录 前言 1.容器简介 2.容器的结构 2.1 BeanFactory 2.2 ApplicationContext 2.2.1 ConfigurableApplicationContext 2.2 ...
- 「 从0到1学习微服务SpringCloud 」02 Eureka服务注册与发现
系列文章(更新ing): 「 从0到1学习微服务SpringCloud 」01 一起来学呀! Spring Cloud Eureka 基于Netflix Eureka做了二次封装(Spring Clo ...
- SpingMvc复杂参数传收总结
上一篇文章[javaWeb传收参数方式总结]总结了简单传收参数,这一篇讲如何传收复杂参数,比如Long[] .User(bean里面包含List).User[].List.List<Map< ...
- mybatis in查询
原文地址:https://blog.csdn.net/u012427355/article/details/79580561 foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集 ...