Tensorboard_网络结构

import tensorflow as tf  
from tensorflow.examples.tutorials.mnist import input_data  
  
#载入数据集  
mnist = input_data.read_data_sets("MNIST_data",one_hot=True)  
  
#每个批次的大小和总共有多少个批次  
batch_size = 100  
n_batch = mnist.train.num_examples // batch_size  

#命名空间
with tf.name_scope("input"):
    #定义两个placeholder  
    x = tf.placeholder(tf.float32,[None,784], name = "x_input")  
    y = tf.placeholder(tf.float32,[None,10], name = "y_input")  
  
with tf.name_scope("layer"):
    #创建一个简单的神经网络 
    with tf.name_scope('weights'):
        W = tf.Variable(tf.zeros([784,10]), name='W') 
    with tf.name_scope('biases'):    
        b = tf.Variable(tf.zeros([10]), name='b') 
    with tf.name_scope('wx_plus_b'):  
        wx_plus_b = tf.matmul(x,W)+b
    with tf.name_scope('softmax'):
        prediction = tf.nn.softmax(wx_plus_b)  

with tf.name_scope('loss'):
    #交叉熵代价函数 
    loss = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(labels=y, logits=prediction))  
with tf.name_scope('train'):
    #使用梯度下降法 
    train_step = tf.train.GradientDescentOptimizer(0.2).minimize(loss)  
  
#初始化变量  
init = tf.global_variables_initializer()  

with tf.name_scope('accuracy'):
    with tf.name_scope('correct_prediction'):
        #结果存放在一个布尔型列表中  
        correct_prediction = tf.equal(tf.argmax(y,1),tf.argmax(prediction,1))#argmax返回一维张量中最大的值所在的位置  
    with tf.name_scope('accuracy'):
        #求准确率  
        accuracy = tf.reduce_mean(tf.cast(correct_prediction,tf.float32))  
  
with tf.Session() as sess:  
    sess.run(init)  
    writer = tf.summary.FileWriter("log/", sess.graph) #写入到的位置
    for epoch in range(1):  
        for batch in range(n_batch):  
            batch_xs,batch_ys =  mnist.train.next_batch(batch_size)  
            sess.run(train_step,feed_dict={x:batch_xs, y:batch_ys})  
          
        acc = sess.run(accuracy,feed_dict={x:mnist.test.images,y:mnist.test.labels})  
        print("epoch " + str(epoch)+ "   acc " +str(acc))  

在学习神经网络的时候,我们都希望能直观的看到我们搭建的网络到底是什么样子的,Tensorboard就实现了这个功能。

其实很简单,就是在定义变量,搭建网络,loss函数,训练优化器等语句之前加上 with tf.name_scope(" "):

运行程序,打开命令行界面,切换到 log 所在目录,输入

tensorboard --logdir= --logdir=C:\Users\Administrator\Desktop\Python\log

接着会返回一个链接,类似 http://PC-20160926YCLU:6006

打开谷歌浏览器或者火狐,输入网址即可查看搭建的网络结构。

注意:如果对网络进行更改之后,在运行之前应该先删除log下的文件,在Jupyter中应该选择Kernel----->Restar & Run All, 否则新网络会和之前的混叠到一起。因为每次的网址都是一样的,在浏览器刷新页面即可。实验结果如下:


阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lansetiankong2104/article/details/79976342
文章标签: Python
个人分类: python
上一篇Tensorflow_MNIST数据集上结果改进
下一篇使用Tensorboard绘制网络识别准确率和loss曲线
想对作者说点什么? 我来说一句

PR0FIBUS—DP网络结构

2010年09月12日 236KB 下载

网络结构指数计算方法

2011年03月05日 19KB 下载

网络结构

2008年06月25日 36KB 下载

数据库课程设计 bs网络结构

2010年06月27日 3.35MB 下载

没有更多推荐了,返回首页

关闭
关闭