美文网首页
04基于softmax regress的tensorboard绘

04基于softmax regress的tensorboard绘

作者: 南墙已破 | 来源:发表于2016-10-28 14:59 被阅读577次

这片文章的绘图基于我之前写的softmax regress 代码所写。意在以简洁的方式看到tensorboard的绘图效果。tensorflow的绘图有几大模块:

  • EVENT:tf.scalar_summary,用于记录梯度函数值的走向之类的。
  • IMAGES:收集图片数据,当你处理图片是选用。
  • AUDIO:收集音频数据,当你使用数据为音频时,选用。
  • GRAPHS :构建图,效果类似流程图一样,可以看到数据的流向,使用tf.name_scope。
  • DISTRIBUTIONS:这个可以看变量的分布值,比如w值变化的过程中,老是在0.5附近徘徊。
  • HISTOGRAMS:记录优化变量的历史值(比如weight值,平均值等),并使用折线图的方式展现。使用tf.histogram_sumary进行收集。

看到tensorflow的GRAPHS只需要两个步骤
1.用tf.name_scope来打包要展示的处理过程
2.启动一个tf.train.SummaryWriter
代码如下:

from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
# to get the data path in these project
import os
import tensorflow as tf
from tensorflow.examples.tutorials.mnist import input_data

import numpy as np

# mnist数据集的目录,先获得整个工程中数据目录的根目录,然后拼接子目录
dataPathRoot = os.path.abspath('./../../../data')
mnistDataPath = os.path.join(dataPathRoot, 'MNIST_data')
print(mnistDataPath)


# get the mnist train data
mnist = input_data.read_data_sets(mnistDataPath, one_hot=True)

batch_size=10
# 训练或测试数据输入
with tf.name_scope('1_0input'):
    x = tf.placeholder(tf.float32, [None, 28 * 28], name='input_x')
    y = tf.placeholder(tf.float32, [None, 10], name='target_y')

# 需要优化的变量
with tf.name_scope('1_1linefuanction'):
    w = tf.Variable(tf.zeros([28 * 28, 10]), name='weight')
    b = tf.Variable(tf.zeros(10), name='bias')

with tf.name_scope('2_0softmax'):
    xwb=tf.matmul(x, w) + b
    pred = tf.nn.softmax(xwb, name='softmax')

# 交叉熵和梯度下降优化
with tf.name_scope('3_0cross_entropy'):
    cross_entropy=-tf.reduce_sum(y*tf.log(pred))
    tf.histogram_summary('cross_entropy',cross_entropy)
    train_step=tf.train.GradientDescentOptimizer(0.01, name='GradientDescent').minimize(cross_entropy)

# 模型评估
correct_prediction=tf.equal(tf.argmax(pred,1),tf.argmax(y,1))
accuray=tf.reduce_mean(tf.cast(correct_prediction,tf.float32))

init_variable = tf.initialize_all_variables()

sess = tf.Session()
#SummaryWriter中的路径参数最好为全路径,不要使用~/workingdirectory这些形式,它不认识。
logpath=r'/home/username/workingdirectory/tensorflow_logs'
summary_writer = tf.train.SummaryWriter(logpath,sess.graph)

sess.run(init_variable)

one_batch_x, one_batch_y = mnist.train.next_batch(batch_size)
#执行一次训练
sess.run(train_step, feed_dict={x: one_batch_x, y: one_batch_y})

print(sess.run(accuray,feed_dict={x:mnist.test.images[:batch_size],y:mnist.test.labels[:batch_size]}))

summary_writer.close()
sess.close()

运行完这段代码后,bash窗口里面cdlogpath目录查看,有文件生成说明正常咯。我生成的文件名如下events.out.tfevents.1477627392.ubuntu
有了日志文件,然后是使用tensorboard命令来启动。
1.首先是进入tensorflow环境:source activate tensorflow(我用anaconda的方式安装了CPU版本的tensorflow)
2.tensorboard --logdir logpath我在logdir后面写了个.这个它是认识的,写全路径也行。

3.在浏览器下面打开bash里面提示的URLhttp://127.0.1.1:6006出现下画面。

4.点击上面的GRAPHS就能出现我们设计的图了

PS:后续上传histgram_summary的实验代码,有些许不同。但是到这里,估计你也能自己探索出来了。

相关文章

网友评论

      本文标题:04基于softmax regress的tensorboard绘

      本文链接:https://www.haomeiwen.com/subject/fjheuttx.html