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的简单使用的更多相关文章

  1. Tensorboard 的简单使用

    确保环境以及安装好tensorflow以及tensorboard 下面通过一个简单的例子来显示一下使用方式,一个向量加法的图结构. import tensorflow as tf a = tf.con ...

  2. 机器学习与Tensorflow(6)——LSTM的Tensorflow实现、Tensorboard简单实现、CNN应用

    最近写的一些程序以及做的一个关于轴承故障诊断的程序 最近学习进度有些慢 而且马上假期 要去补习班 去赚下学期生活费 额.... 抓紧时间再多学习点 1.RNN递归神经网络Tensorflow实现程序 ...

  3. [Pytorch]PyTorch使用tensorboardX(转

    文章来源: https://zhuanlan.zhihu.com/p/35675109 https://www.aiuai.cn/aifarm646.html 之前用pytorch是手动记录数据做图, ...

  4. Tensorflow模型加载与保存、Tensorboard简单使用

    先上代码: from __future__ import absolute_import from __future__ import division from __future__ import ...

  5. 超简单tensorflow入门优化程序&&tensorboard可视化

    程序1 任务描述: x = 3.0, y = 100.0, 运算公式 x×W+b = y,求 W和b的最优解. 使用tensorflow编程实现: #-*- coding: utf-8 -*-) im ...

  6. tensorboard简单使用

    代码写的再好,没有图别人也不知道好在哪. 我们在使用tensorflow的时候,使用tensorboard可以直观的看到我们的网络结构,甚至它可以计算卷积和池化的维度(我不知道是不是因为我已经运行了一 ...

  7. 如何简单使用tensorboard展示(二)

    我使用tensorboard继续做了标量展示与直方图展示,在一的基础做了拓展,其改写代码如下: import numpy as npimport tensorflow as tfimport rand ...

  8. 如何简单使用tensorboard展示(一)

    我使用tensorboard中的graph做了展示,至于其它功能可以类推,其代码如下: import numpy as npimport tensorflow as tf x_img = np.arr ...

  9. Tensorflow学习笔记3:TensorBoard可视化学习

    TensorBoard简介 Tensorflow发布包中提供了TensorBoard,用于展示Tensorflow任务在计算过程中的Graph.定量指标图以及附加数据.大致的效果如下所示, Tenso ...

随机推荐

  1. pair 数组

    当有两个元素需要绑定在一起的时候可以用结构体 , 此时也可以用 pair 数组去替代结构体 . 定义 : pair<int, double> p1; //使用默认构造函数 pair< ...

  2. 256位AES加密和解密

    /// <summary> /// 256位AES加密 /// </summary> /// <param name="toEncrypt">& ...

  3. java架构之路(多线程)JUC并发编程之Semaphore信号量、CountDownLatch、CyclicBarrier栅栏、Executors线程池

    上期回顾: 上次博客我们主要说了我们juc并发包下面的ReetrantLock的一些简单使用和底层的原理,是如何实现公平锁.非公平锁的.内部的双向链表到底是什么意思,prev和next到底是什么,为什 ...

  4. 20191014Java课堂记录

    1. Java字段初始化的规律 首先执行类成员定义时指定的默认值或类的初始化块,到底执行哪一个要看哪一个“排在前面”. 其次执行类的构造函数. 类的初始化块不接收任何的参数,而且只要一创建类的对象,它 ...

  5. Java架构师线上问题排查,这些命令程序员一定用得到!

    Java架构师线上问题排查,这些命令程序员一定用得到! 线上问题排查,以下场景,你遇到过吗? 一.了解机器连接数情况 问题:1.2.3.4的sshd的监听端口是22,如何统计1.2.3.4的sshd服 ...

  6. msi通过powershell安装、卸载

    function install_msi($url) { $telemetry = @{ DisplayName = "Telemetry Service"; filename = ...

  7. Java单体应用 - Markdown - 01.简介

    原文地址:http://www.work100.net/training/monolithic-markdown.html 更多教程:光束云 - 免费课程 简介 序号 文内章节 视频 1 概述 2 特 ...

  8. 动画 | 什么是平衡二分搜索树(AVL)?

    二分搜索树又名有序二叉查找树,它有一个特点是左子树的节点值要小于父节点值,右子树的节点值要大于父节点值.基于这样的特点,我们在查找某个节点的时候,可以采取二分查找的思想快速找到这个节点,时间复杂度期望 ...

  9. MySQL军规升级版(转)

    一.基础规范 表存储引擎必须使用InnoDB 表字符集默认使用utf8,必要时候使用utf8mb4 解读:(1)通用,无乱码风险,汉字3字节,英文1字节(2)utf8mb4是utf8的超集,有存储4字 ...

  10. L1和L2:损失函数和正则化

    作为损失函数 L1范数损失函数 L1范数损失函数,也被称之为最小绝对值误差.总的来说,它把目标值$Y_i$与估计值$f(x_i)$的绝对差值的总和最小化. $$S=\sum_{i=1}^n|Y_i-f ...