import os
import tab
import tensorflow as tf print "tensorflow 5.2 " from tensorflow.examples.tutorials.mnist import input_data '''
mnist = input_data.read_data_sets("/asky/tensorflow/mnist_data",one_hot=True)
print "-------------------------------------"
print "Training data size: ",mnist.train.num_examples
print "-------------------------------------"
print "Validating data size: ",mnist.validation.num_examples
print "-------------------------------------"
print "Testing data size: " ,mnist.test.num_examples
print "-------------------------------------"
print "Example training data: ",mnist.train.images[0]
print "-------------------------------------"
print "Example training data label: ",mnist.train.labels[0] batch_size = 100
xs,ys=mnist.train.next_batch(batch_size) print "X shape:",xs.shape print "Y shape:",ys.shape print "Test Tezt"
''' INPUT_NODE = 784
OUTPUT_NODE = 10 LAYER1_NODE = 500 BATCH_SIZE = 100 LEARNING_RATE_BASE = 0.8
LEARNING_RATE_DECAY = 0.99 REGULARIZATION_RATE = 0.0001
TRAINING_STEPS = 30000
MOVING_AVERAGE_DECAY = 0.99 def inference(input_tensor,avg_class,weights1,biases1,weights2,biases2):
if avg_class == None:
layer1 = tf.nn.relu(tf.matmul(input_tensor,weights1)+biases1)
return tf.matmul(layer1,weights2)+biases2
else:
layer1 = tf.nn.relu(
tf.matmul(input_tensor,avg_class.average(weights1))+
avg_class.average(biases1))
return tf.matmul(layer1,avg_class.average(weights2))+avg_class.average(biases2) def train(mnist):
x = tf.placeholder(tf.float32,[None,INPUT_NODE],name='x-input')
y_ = tf.placeholder(tf.float32,[None,OUTPUT_NODE],name='y-input')
weights1 = tf.Variable(
tf.truncated_normal([INPUT_NODE,LAYER1_NODE],stddev=0.1))
biases1 = tf.Variable( tf.constant(0.1,shape=[LAYER1_NODE])) weights2 = tf.Variable(tf.truncated_normal([LAYER1_NODE,OUTPUT_NODE],stddev=0.1))
biases2 = tf.Variable(tf.constant(0.1,shape=[OUTPUT_NODE])) y = inference(x,None,weights1,biases1,weights2,biases2) global_step = tf.Variable(0,trainable=False) variable_averages = tf.train.ExponentialMovingAverage(MOVING_AVERAGE_DECAY,global_step) variables_averages_op = variable_averages.apply(tf.trainable_variables()) average_y = inference(x,variable_averages,weights1,biases1,weights2,biases2) #cross_entropy = tf.nn.sparse_softmax_cross_entropy_with_logits(y, tf.argmax(y_, 1 ))
cross_entropy = tf.nn.sparse_softmax_cross_entropy_with_logits(labels=tf.argmax(y_, 1), logits=y) cross_entropy_mean = tf.reduce_mean(cross_entropy) regularizer = tf.contrib.layers.l2_regularizer(REGULARIZATION_RATE) regularization = regularizer(weights1) + regularizer(weights2) loss = cross_entropy_mean + regularization learning_rate = tf.train.exponential_decay(
LEARNING_RATE_BASE,
global_step,
mnist.train.num_examples/BATCH_SIZE,
LEARNING_RATE_DECAY
) train_step = tf.train.GradientDescentOptimizer(learning_rate).minimize(loss, global_step=global_step) with tf.control_dependencies([train_step,variables_averages_op]):
train_op = tf.no_op(name='train') correct_prediction = tf.equal(tf.argmax(average_y,1),tf.argmax(y_,1))
accuracy = tf.reduce_mean(tf.cast(correct_prediction,tf.float32)) with tf.Session() as sess:
tf.global_variables_initializer().run()
validate_feed = {x: mnist.validation.images,
y_: mnist.validation.labels}
test_feed = {x: mnist.test.images, y_: mnist.test.labels }
for i in range(TRAINING_STEPS):
if i % 1000 ==0:
validate_acc = sess.run(accuracy,feed_dict=validate_feed)
print ("After %d training step(s),validation accuracy "
"using average model is %g " %(i,validate_acc) )
xs, ys = mnist.train.next_batch(BATCH_SIZE)
sess.run(train_op,feed_dict={x: xs , y_ : ys}) test_acc = sess.run(accuracy,feed_dict=test_feed)
print ( "After %d training step(s),test accuracy using average "
"model is %g " % (TRAINING_STEPS , test_acc) ) def main(argv=None) :
mnist = input_data.read_data_sets("/asky/tensorflow/mnist_data",one_hot=True)
train(mnist) if __name__ == '__main__':
tf.app.run()

Tensorflow 实战Google深度学习框架 第五章 5.2.1Minister数字识别 源代码的更多相关文章

  1. [Tensorflow实战Google深度学习框架]笔记4

    本系列为Tensorflow实战Google深度学习框架知识笔记,仅为博主看书过程中觉得较为重要的知识点,简单摘要下来,内容较为零散,请见谅. 2017-11-06 [第五章] MNIST数字识别问题 ...

  2. 1 如何使用pb文件保存和恢复模型进行迁移学习(学习Tensorflow 实战google深度学习框架)

    学习过程是Tensorflow 实战google深度学习框架一书的第六章的迁移学习环节. 具体见我提出的问题:https://www.tensorflowers.cn/t/5314 参考https:/ ...

  3. TensorFlow+实战Google深度学习框架学习笔记(5)----神经网络训练步骤

    一.TensorFlow实战Google深度学习框架学习 1.步骤: 1.定义神经网络的结构和前向传播的输出结果. 2.定义损失函数以及选择反向传播优化的算法. 3.生成会话(session)并且在训 ...

  4. 学习《TensorFlow实战Google深度学习框架 (第2版) 》中文PDF和代码

    TensorFlow是谷歌2015年开源的主流深度学习框架,目前已得到广泛应用.<TensorFlow:实战Google深度学习框架(第2版)>为TensorFlow入门参考书,帮助快速. ...

  5. TensorFlow实战Google深度学习框架-人工智能教程-自学人工智能的第二天-深度学习

    自学人工智能的第一天 "TensorFlow 是谷歌 2015 年开源的主流深度学习框架,目前已得到广泛应用.本书为 TensorFlow 入门参考书,旨在帮助读者以快速.有效的方式上手 T ...

  6. TensorFlow实战Google深度学习框架1-4章学习笔记

    目录 第1章 深度学习简介 第2章 TensorFlow环境搭建 第3章 TensorFlow入门 第4章 深层神经网络   第1章 深度学习简介 对于许多机器学习问题来说,特征提取不是一件简单的事情 ...

  7. TensorFlow实战Google深度学习框架10-12章学习笔记

    目录 第10章 TensorFlow高层封装 第11章 TensorBoard可视化 第12章 TensorFlow计算加速 第10章 TensorFlow高层封装 目前比较流行的TensorFlow ...

  8. TensorFlow实战Google深度学习框架5-7章学习笔记

    目录 第5章 MNIST数字识别问题 第6章 图像识别与卷积神经网络 第7章 图像数据处理 第5章 MNIST数字识别问题 MNIST是一个非常有名的手写体数字识别数据集,在很多资料中,这个数据集都会 ...

  9. Tensorflow实战Google深度学习框架-总结-1

    第一章:深度学习简介   1⃣️应用有 1.计算机视觉 2.语音识别 3.自然语言处理 4.人机博弈   2⃣️深度学习,机器学习,AI 的关系

随机推荐

  1. CentOS 7在桌面添加快捷方式

    直接把 /usr/share/applications 对应的 xxx.desktop 文件复制到桌面就OK!比如要在桌面创建Google Chrome Browser的快捷方式,直接在找到 /usr ...

  2. MYSQL 两日期之间的工作日(除去周六日,不考虑节假日)

    select (floor(days/7)*5+days%7      -case when 6 between wd and wd+days%7-1 then 1 else 0 end      - ...

  3. OpenGL模板缓冲区与模板测试

    原文地址:http://www.blogjava.net/qileilove/archive/2014/01/23/409269.html 帧缓冲区有许多缓冲区构成,这些缓冲区大致分为: 颜色缓冲区: ...

  4. 【转】struts2.5框架使用通配符指定方法(常见错误)

    在学习struts框架时经常会使用到通配符调用方法,如下: <package name="shop" namespace="/" extends=&quo ...

  5. VC++ 使用MSSOAP访问WebService天气服务(客户端开发)

    绪论 本文介绍使用VC++编程实现访问天气Web服务的简单实例(例子来源于网络). Web天气服务 http://www.webxml.com.cn/WebServices/WeatherWebSer ...

  6. when an event of selector will be fired

    OP_READ Operation-set bit for read operations. Suppose that a selection key's interest set contains ...

  7. sublime text 2 破解

    本文是介绍sublime text 2.0.2 build 2221 64位 的破解 在你使用sublime时可能经常出现下图: 这是在提醒你注册 在工具栏上点击help->Enter Lice ...

  8. Effective C++ Item 14 Think carefully about copying behavior in resource-managing classe

    In C++, the only code that guaranteed to be executed after an exception is thrown are the destructor ...

  9. 单独使用 EHCache

    1. EHCache 的特点,是一个纯Java ,过程中(也可以理解成插入式)缓存实现,单独安装Ehcache ,需把ehcache-X.X.jar 和相关类库方到classpath中.如项目已安装了 ...

  10. tomcat日志保存在哪里?

    tomcat目录下的logs文件夹下.有个catalina.20xx-xx-xx.log