TensorFlow训练softmax回归(带tensorboard)
2017-10-29 13:28
615 查看
输入数据集:MNIST_data
模型:简单的softmax回归模型。除了应用到常用的tensorflow的api,还用到了tensorflow的TensorBoard
运行结果:
tensorboard部分展示:
summary.scalar部分
模型:简单的softmax回归模型。除了应用到常用的tensorflow的api,还用到了tensorflow的TensorBoard
#encoding:utf-8 import tensorflow as tf import numpy as np import input_data mnist = input_data.read_data_sets("MNIST_data/", one_hot=True) trX, trY, teX, teY = mnist.train.images, mnist.train.labels, mnist.test.images, mnist.test.labels log_dir = "mnist_logs" def variable_summarys(var): with tf.name_scope("summaries"): mean = tf.reduce_mean(var) tf.summary.scalar('mean', mean) with tf.name_scope('stddev'): stddev = tf.sqrt(tf.reduce_mean(tf.square(var - mean))) tf.summary.scalar('stddev', stddev) tf.summary.scalar('max', tf.reduce_max(var)) tf.summary.scalar('min', tf.reduce_min(var)) tf.summary.histogram('histogram', var) def init_weights(shape): return tf.Variable(tf.random_normal(shape, stddev = 0.01), name = "weight") def model(X, w): return tf.matmul(X, w) graph = tf.Graph() with graph.as_default(): input_X = tf.placeholder('float', [None, 784], name = "input_X") input_Y = tf.placeholder('float', [None, 10], name = 'input_Y') global_step = tf.Variable(0, trainable = False) with tf.name_scope('input_reshape'): image_shaped_input = tf.reshape(input_X, [-1,28, 28, 1]) tf.summary.image('input', image_shaped_input, 10) w = init_weights([784, 10]) variable_summarys(w) py_x = model(input_X, w) tf.summary.tensor_summary('predict', py_x) cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits = py_x, labels = input_Y)) tf.summary.scalar("costsummary.tensor_summary", cost) optimizer = tf.train.GradientDescentOptimizer(0.005).minimize(cost, global_step = global_step) predict_op = tf.argmax(py_x, 1) merged = tf.summary.merge_all() with tf.device("/cpu:0"): saver = tf.train.Saver(tf.global_variables(), max_to_keep = 2) with tf.Session(graph = graph) as sess: train_writer = tf.summary.FileWriter(log_dir + 'train', sess.graph) tf.global_variables_initializer().run() for i in range(100): for start, end in zip(range(0, len(trX), 128), range(128, len(trX)+1, 128)): summary, _, step_id = sess.run([merged, optimizer, global_step], feed_dict={input_X: trX[start:end], input_Y: trY[start:end]}) train_writer.add_summary(summary, step_id) predict_results = sess.run(predict_op, feed_dict = {input_X : teX}) accuracy = np.mean(np.argmax(teY, axis = 1) == predict_results) print "accuracy", i+1, " ", accuracy saver.save(sess, 'run/chekpoint', global_step = n_step)
运行结果:
tensorboard部分展示:
summary.scalar部分
相关文章推荐
- TensorFlow基础教程:tensorboard训练过程可视化
- 一、正确安装 Keras & TensorFlow 并调用 TensorBoard 绘制训练曲线
- Tensorflow 可视化 Tensorboard2 训练过程
- Tensorflow学习笔记:基础篇(6)——Mnist手写集改进版(Optimizer与Tensorboard)
- tensorflow实现逻辑回归,在kaggle《泰坦尼克》训练并测试准确率
- TensorFlow 实现Softmax 回归模型
- tensorflow-tensorboard
- TensorFlow-7-TensorBoard Embedding可视化
- 学习TensorFlow,TensorBoard可视化网络结构和参数
- Tensorflow学习教程------tensorboard网络运行和可视化
- 88、使用tensorboard进行可视化学习,查看具体使用时间,训练轮数,使用内存大小
- TensorFlow、TensorBoard使用学习记录
- tensorflow tutorials(二):用tensorflow建立岭回归模型
- Tensorflow 入门学习3 Hello TensorFlow 建立一个隐藏层的神经网络实现回归分析
- 学习TensorFlow,TensorBoard可视化网络结构和参数
- 【Tensorflow】TensorBoard可视化网络结构和参数Tensorboard windows显示空白
- tensorflow日常小记---tensorboard曲线显示不全
- Windows下Anaconda中tensorflow的tensorboard使用
- tensorflow下使用TensorBoard报错提示无这个文件,以及TensorBoard返回的网址打不开等问题详解
- 【tensorflow学习】使用tensorboard实现数据可视化