基于TensorFlow进行TensorBoard可视化

  1 # -*- coding: utf-8 -*-
  2 """
  3 Created on Thu Nov  1 17:51:28 2018
  4
  5 @author: zhen
  6 """
  7
  8 import tensorflow as tf
  9 from tensorflow.examples.tutorials.mnist import input_data
 10
 11 max_steps = 1000
 12 learning_rate = 0.001
 13 dropout = 0.9
 14 data_dir = ‘C:/Users/zhen/MNIST_data_bak/‘
 15 log_dir = ‘C:/Users/zhen/MNIST_log_bak/‘
 16
 17 mnist = input_data.read_data_sets(data_dir, one_hot=True)
 18 sess = tf.InteractiveSession()
 19
 20 with tf.name_scope(‘input‘):
 21     x = tf.placeholder(tf.float32, [None, 784], name=‘x-inpupt‘)
 22     y_ = tf.placeholder(tf.float32, [None, 10], name=‘y-input‘)
 23
 24 with tf.name_scope("input_reshape"):
 25     image_shaped_input = tf.reshape(x, [-1, 28, 28, 1])
 26     tf.summary.image(‘input‘, image_shaped_input, 10)
 27
 28 # 定义神经网络的初始化方法
 29 def weight_variable(shape):
 30     initial = tf.truncated_normal(shape, stddev=0.1)
 31     return tf.Variable(initial)
 32
 33 def bias_variable(shape):
 34     initial = tf.constant(0.1, shape=shape)
 35     return tf.Variable(initial)
 36
 37 # 定义Variable变量的数据汇总函数
 38 def variable_summaries(var):
 39     with tf.name_scope(‘summaries‘):
 40         mean = tf.reduce_mean(var)
 41         tf.summary.scalar(‘mean‘, mean)
 42         with tf.name_scope(‘stddev‘):
 43             stddev = tf.sqrt(tf.reduce_mean(tf.square(var - mean)))
 44         tf.summary.scalar(‘stddev‘, stddev)
 45         tf.summary.scalar(‘max‘, tf.reduce_max(var))
 46         tf.summary.scalar(‘min‘, tf.reduce_min(var))
 47         tf.summary.histogram(‘histogram‘, var)
 48
 49 # 创建MLP多层神经网络
 50 def nn_layer(input_tensor, input_dim, output_dim, layer_name, act=tf.nn.relu):
 51     with tf.name_scope(layer_name):
 52         with tf.name_scope(‘weights‘):
 53             weights = weight_variable([input_dim, output_dim])
 54             variable_summaries(weights)
 55         with tf.name_scope(‘biases‘):
 56             biases = bias_variable([output_dim])
 57             variable_summaries(biases)
 58         with tf.name_scope(‘Wx_plus_b‘):
 59             preactivate = tf.matmul(input_tensor, weights) + biases
 60             tf.summary.histogram(‘pre_activations‘, preactivate)
 61         activations = act(preactivate, name=‘activation‘)
 62         tf.summary.histogram(‘activations‘, activations)
 63         return activations
 64
 65 hidden1 = nn_layer(x, 784, 500, ‘layer1‘)
 66
 67 with tf.name_scope(‘dropout‘):
 68     keep_prob = tf.placeholder(tf.float32)
 69     tf.summary.scalar(‘dropout_keep_probability‘, keep_prob)
 70     dropped  = tf.nn.dropout(hidden1, keep_prob)
 71
 72 y = nn_layer(dropped, 500, 10, ‘layer2‘, act=tf.identity)
 73
 74 with tf.name_scope(‘scross_entropy‘):
 75     diff = tf.nn.softmax_cross_entropy_with_logits(logits=y, labels=y_)
 76     with tf.name_scope(‘total‘):
 77         cross_entropy  = tf.reduce_mean(diff)
 78 tf.summary.scalar(‘cross_entropy‘, cross_entropy)
 79
 80 with tf.name_scope(‘train‘):
 81     train_step = tf.train.AdamOptimizer(learning_rate).minimize(cross_entropy)
 82 with tf.name_scope(‘accuracy‘):
 83     with tf.name_scope(‘accuracy‘):
 84         correct_prediction = tf.equal(tf.argmax(y, 1), tf.argmax(y_, 1))
 85     with tf.name_scope(‘accuracy‘):
 86         accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))
 87
 88 tf.summary.scalar(‘accuracy‘, accuracy)
 89
 90 merged = tf.summary.merge_all()
 91 train_writer = tf.summary.FileWriter(log_dir + ‘/train‘, sess.graph)
 92 test_writer = tf.summary.FileWriter(log_dir + ‘/test‘) # 可视化数据存储在日志文件中
 93 tf.global_variables_initializer().run()
 94
 95 def feed_dict(train):
 96     if train:
 97         xs, ys = mnist.train.next_batch(100)
 98         k = dropout
 99     else:
100         xs, ys = mnist.test.images, mnist.test.labels
101         k = 1.0
102     return {x:xs, y_:ys, keep_prob:k}
103
104 saver = tf.train.Saver()
105 for i in range(max_steps):
106     if i % 100 == 0:
107         summary, acc = sess.run([merged, accuracy], feed_dict(False))
108         test_writer.add_summary(summary, i)
109         print(‘Accuray at step %s:%s‘ % (i, acc))
110     else:
111         if i % 100 == 99:
112             run_options = tf.RunOptions(trace_level=tf.RunOptions.FULL_TRACE)
113             run_metadata = tf.RunMetadata()
114             summary, _ = sess.run([merged, train_step], feed_dict=feed_dict(True))
115             train_writer.add_run_metadata(run_metadata, ‘stp%03d‘ % i)
116             train_writer.add_summary(summary, 1)
117             saver.save(sess, log_dir + ‘model.ckpt‘, i)
118         else:
119             summary, _ = sess.run([merged,train_step], feed_dict=feed_dict(True))
120             train_writer.add_summary(summary, i)
121
122 train_writer.close()
123 test_writer.close()
124
125     

  程序执行完成后,在dos命令窗口或linux窗口运行命令,参数logdir是你程序保存log日志设置的地址。

效果如下:

结果:

  

  

  一层神经网络:

  

  二层神经网络:

  

  神经网络计算图:

  

  神经元输出的分布:

    

  数据分布直方图:
      

  数据可视化:

    

原文地址:https://www.cnblogs.com/yszd/p/9910456.html

时间: 2024-10-09 14:24:35

基于TensorFlow进行TensorBoard可视化的相关文章

学习TensorFlow,TensorBoard可视化网络结构和参数

在学习深度网络框架的过程中,我们发现一个问题,就是如何输出各层网络参数,用于更好地理解,调试和优化网络?针对这个问题,TensorFlow开发了一个特别有用的可视化工具包:TensorBoard,既可以显示网络结构,又可以显示训练和测试过程中各层参数的变化情况.本博文分为四个部分,第一部分介绍相关函数,第二部分是代码测试,第三部分是运行结果,第四部分介绍相关参考资料. 一. 相关函数 TensorBoard的输入是tensorflow保存summary data的日志文件.日志文件名的形式如:e

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

TensorBoard简介 Tensorflow发布包中提供了TensorBoard,用于展示Tensorflow任务在计算过程中的Graph.定量指标图以及附加数据.大致的效果如下所示, TensorBoard工作机制 TensorBoard 通过读取 TensorFlow 的事件文件来运行.TensorFlow 的事件文件包括了你会在 TensorFlow 运行中涉及到的主要数据.关于TensorBoard的详细介绍请参考TensorBoard:可视化学习.下面做个简单介绍. Tensorf

《21个项目玩转深度学习:基于TensorFlow的实践详解》高清带标签PDF版本学习下载

1 写在前面 <21个项目玩转深度学习——基于TensorFlow的实践详解>以实践为导向,深入介绍了深度学习技术和TensorFlow框架编程内容. 通过本书,读者可以训练自己的图像识别模型.进行目标检测和人脸识别.完成一个风格迁移应用,还可以使用神经网络生成图像和文本,进行时间序列预测.搭建机器翻译引擎,训练机器玩游戏.全书共包含21个项目,分为深度卷积网络.RNN网络.深度强化学习三部分.读者可以在自己动手实践的过程中找到学习的乐趣,了解算法和编程框架的细节,让学习深度学习算法和Tens

tensorboard可视化遇到的问题

由于 TensorFlow版本差异,经常会报模块对象没有某属性的错误,先把tensorboard可视化过程遇到的几个报错解决方案记录如下: 1. AttributeError: 'module' object has no attribute 'histogram_summary' histogram_summary 改为:tf.summary.histogram 2. AttributeError: 'module' object has no attribute 'scalar_summar

基于TensorFlow的深度学习系列教程 2——常量Constant

前面介绍过了Tensorflow的基本概念,比如如何使用tensorboard查看计算图.本篇则着重介绍和整理下Constant相关的内容. 基于TensorFlow的深度学习系列教程 1--Hello World! 常量的概念 在tensorflow中,数据分为几种类型: 常量Constant.变量Variable.占位符Placeholder.其中: 常量:用于存储一些不变的数值,在计算图创建的时候,调用初始化方法时,直接保存在计算图中 变量:模型训练的参数,比如全连接里面的W和bias 占

基于HTML5的数据可视化实现方法解读

现在在大数据的带领下,数据可视化越来越突出,能够清楚的分析出自己想要的数据,这也是我们现在最求的数据可视化方法,那么实现HTML5的数据可视化方法有哪些?这都是我们值得研究的东西,数据可以给我们带来敏感的市场未来发展,同时也能够实时分别不同数据效果. HTML5为数据可视化提供了新的实现方法.本文对HTML5在健康数据可视化在PC及部分移动终端上的应用进行研究.使用HTML5中的Canvas和SVG实现的数据可视化方法基于浏览器的支持,具有很好的平台兼容性 可视化(Visualization)是

推荐14款基于javascript的数据可视化工具

随着数据可视化概念逐年火热,有较多优秀的图表开源库和制作工具脱颖而出,下面,我们就拿其中比较有名的 14个产品进行简要介绍. 1.AnyChart 链接:http://www.anychart.com/ AnyChart 是基于 Flash/JavaScript(HTML5) 的图表解决方案,它可以轻松地跨浏览器.跨平台工作.除了基础的图表功能外,它还有收费的交互式图表和仪表功能.它可以通过 XML 格式获取数据,该方式让开发人员非常灵活地控制图表上的每一个数据点,而当图表数据点数量偏大时,则可

在Keras中使用tensorboard可视化acc等曲线

1.使用tensorboard可视化ACC,loss等曲线 1 keras.callbacks.TensorBoard(log_dir='./Graph', 2 histogram_freq= 0 , 3 write_graph=True, 4 write_images=True) 5 tbCallBack = keras.callbacks.TensorBoard(log_dir='./Graph', 6 histogram_freq= 0, 7 write_graph=True, 8 wri

21个项目玩转深度学习:基于TensorFlow的实践详解06—人脸检测和识别——数据集

书籍:<21个项目玩转深度学习:基于TensorFlow的实践详解> 人脸检测 FDDB FDDB是UMass的数据集,被用来做人脸检测(Face Detection).这个数据集比较大,比较有挑战性.而且作者提供了程序用来评估检测结果,所以在这个数据上面比较算法也相对公平. 2845 张图片,其中包含了 5171 张人脸: 包含了各种遮挡,高难度的姿态,低分辨率以及对焦模糊的人脸: 用椭圆来标定人脸区域: 同时包括灰度图和彩色图. 人脸识别 LFW 户外标记人脸数据集LFW (Labeled