6.可视化结构,定义命名空间

import tensorflow as tf
import numpy as np
from tensorflow.examples.tutorials.mnist import input_data
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'

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'):
    x = tf.placeholder(tf.float32, [None, 784], name='x-input')
    y = tf.placeholder(tf.float32, [None, 10],  name='y-input')
    keep_prob = tf.placeholder(tf.float32, name='keep_prob') 
    lr = tf.Variable(0.001, dtype=tf.float32, name='lr')

with tf.name_scope('layer1'):
    with tf.name_scope('weights1'):
        W1 = tf.Variable(tf.truncated_normal([784,500],stddev=0.1, name='W1'))
    with tf.name_scope('biases1'):
        b1 = tf.Variable(tf.zeros([500])+0.1, name='b1') 
    with tf.name_scope('L1'):
        L1 = tf.nn.tanh(tf.matmul(x,W1)+b1, name="L1")
    with tf.name_scope('dropout'):
        L1_drop = tf.nn.dropout(L1, keep_prob, name='dropout1') 

with tf.name_scope('layer2'):
    with tf.name_scope("weight2"):
        W2 = tf.Variable(tf.truncated_normal([500,300],stddev=0.1), name='W2')
    with tf.name_scope('biases2'):
        b2 = tf.Variable(tf.zeros([300])+0.1, name='b2')
    with tf.name_scope('L2'):
        L2 = tf.nn.tanh(tf.matmul(L1_drop,W2)+b2, name='L2')
    with tf.name_scope('dropout'):
        L2_drop = tf.nn.dropout(L2, keep_prob, name='dropout2')

with tf.name_scope('layer3'):
    with tf.name_scope("weight3"):
        W3 = tf.Variable(tf.truncated_normal([300,10],stddev=0.1), name='W3')
    with tf.name_scope('biases3'):
        b3 = tf.Variable(tf.zeros([10])+0.1, name='b3')
    with tf.name_scope('L3'):
        prediction = tf.nn.softmax(tf.matmul(L2_drop, W3) + b3, name='L3')

with tf.name_scope('loss'):
    loss = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits_v2(labels=y, logits=prediction), name='loss') #logits预测值
with tf.name_scope('train'):
    train_step = tf.train.AdamOptimizer(lr).minimize(loss)

with tf.name_scope('accuracy'):
    with tf.name_scope("corrent_prediction"):
        corrent_prediction =tf.equal(tf.argmax(y,1), tf.argmax(prediction, 1))
    with tf.name_scope("accuracy"):
        accuracy = tf.reduce_mean(tf.cast(corrent_prediction, tf.float32))

with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    write = tf.summary.FileWriter('logs/',sess.graph) # params1 是路径,params2 是存放的图
    for epoch in range(1):
        sess.run(tf.assign(lr,0.001 * (0.95 ** epoch)))
        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, keep_prob:1.0})
        test_acc = sess.run(accuracy, feed_dict={x:mnist.test.images, y:mnist.test.labels, keep_prob:1.0})
        train_acc = sess.run(accuracy, feed_dict={x:mnist.train.images, y:mnist.train.labels, keep_prob:1.0})

        print('iter'+ str(epoch)+ ',Testing Accuracy' + str(test_acc),',Training Accuracy'+ str(train_acc))

E:>tensorboard --logdir=E:\logs\ ##这里不能有中文哦

cmd tensorboard
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值