Tensorflow Google实战之mnist BP 实现

import os
os.environ["TF_CPP_MIN_LOG_LEVEL"]='2'
import tensorflow as tf
from tensorflow.examples.tutorials.mnist import input_data

FLAGS=tf.app.flags.FLAGS
tf.app.flags.DEFINE_integer('is_train', 1, '选择是测试不是训练')


mnist=input_data.read_data_sets("./temp/data/",one_hot=True)
print(mnist.train.images.shape, mnist.train.labels.shape)
def full_connected():
    with tf.variable_scope("data"):
        x=tf.placeholder(tf.float32,[None,784])
        y_true=tf.placeholder(tf.int32,[None,10])


    #创建一个saver



    with tf.variable_scope("fc_model"):
        weight=tf.Variable(tf.random_normal([784,10],mean=0,stddev=1.0,name="w"))
        bias=tf.Variable(tf.constant(0,shape=[10],dtype=tf.float32))
        y_predict=tf.matmul(x,weight)+bias
    with tf.variable_scope("soft_cross"):
        loss=tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(labels=y_true,logits=y_predict))
    with tf.variable_scope("optimizer"):
        train_op=tf.train.GradientDescentOptimizer(0.1).minimize(loss)
        equal_list=tf.equal(tf.argmax(y_true,1),tf.argmax(y_predict,1))
        accuracy=tf.reduce_mean(tf.cast(equal_list,tf.float32))
    saver=tf.train.Saver()

    init_op=tf.global_variables_initializer()

    with tf.Session() as sess:
        sess.run(init_op)
        if FLAGS.is_train==True:
            for i in range(2000):
                mnist_x,mnist_y=mnist.train.next_batch(50)

                sess.run(train_op,feed_dict={x:mnist_x,y_true:mnist_y})
                print("训练第%d步,准确率为:%f"%(i,sess.run(accuracy,feed_dict={x:mnist_x,y_true:mnist_y})))
            saver.save(sess,"./temp/ckpt/fc_model.ckpt")
        else:
            saver.restore(sess,"./temp/ckpt/fc_model.ckpt")
            for i in range(100):
                x_test,y_test=mnist.test.next_batch(1)
                print("第%id张图,数字目标是:%d,预测结果是%d"%(i,tf.argmax(y_test,1).eval(),
                                                 tf.argmax(sess.run(y_predict,feed_dict={x:x_test,y_true:y_test}),1).eval()))
    return None

if __name__ == '__main__':
    full_connected()
thon 终端训练和测试

C:\Users\Steven\Desktop\pythonLearn\tensorflow>python tenFw_mnist.py

训练第1步,准确率为:0.060000
训练第2步,准确率为:0.080000
训练第3步,准确率为:0.080000
训练第4步,准确率为:0.080000
训练第300步,准确率为:0.820000
训练第519步,准确率为:0.820000
训练第520步,准确率为:0.740000
训练第521步,准确率为:0.780000
训练第522步,准确率为:0.740000
训练第523步,准确率为:0.700000


C:\Users\Steven\Desktop\pythonLearn\tensorflow>python tenFw_mnist.py --is_train=0


第0d张图,数字目标是:0,预测结果是3
第1d张图,数字目标是:9,预测结果是9
第2d张图,数字目标是:1,预测结果是1
第3d张图,数字目标是:3,预测结果是7
第4d张图,数字目标是:1,预测结果是1
第5d张图,数字目标是:4,预测结果是4
第6d张图,数字目标是:5,预测结果是5
第7d张图,数字目标是:9,预测结果是9
第8d张图,数字目标是:1,预测结果是1
第9d张图,数字目标是:1,预测结果是1
第10d张图,数字目标是:4,预测结果是4
第11d张图,数字目标是:2,预测结果是2
第12d张图,数字目标是:8,预测结果是8
第13d张图,数字目标是:5,预测结果是8
第14d张图,数字目标是:9,预测结果是3
第15d张图,数字目标是:5,预测结果是5
第16d张图,数字目标是:3,预测结果是3
第17d张图,数字目标是:3,预测结果是2
第18d张图,数字目标是:1,预测结果是1
第19d张图,数字目标是:5,预测结果是5
第20d张图,数字目标是:6,预测结果是6
第21d张图,数字目标是:6,预测结果是6
第22d张图,数字目标是:2,预测结果是9
第23d张图,数字目标是:1,预测结果是1
第24d张图,数字目标是:1,预测结果是1
第25d张图,数字目标是:8,预测结果是0
第26d张图,数字目标是:2,预测结果是2
第27d张图,数字目标是:7,预测结果是7
第28d张图,数字目标是:3,预测结果是3
第29d张图,数字目标是:5,预测结果是5
第30d张图,数字目标是:1,预测结果是1
第31d张图,数字目标是:3,预测结果是3
第32d张图,数字目标是:1,预测结果是1
第33d张图,数字目标是:4,预测结果是4
第34d张图,数字目标是:6,预测结果是6
第35d张图,数字目标是:3,预测结果是3
第36d张图,数字目标是:9,预测结果是9
第37d张图,数字目标是:3,预测结果是3
第38d张图,数字目标是:1,预测结果是8
第39d张图,数字目标是:8,预测结果是8
第40d张图,数字目标是:0,预测结果是0
第41d张图,数字目标是:1,预测结果是1
第42d张图,数字目标是:6,预测结果是6
第43d张图,数字目标是:7,预测结果是9
第44d张图,数字目标是:8,预测结果是9
第45d张图,数字目标是:1,预测结果是1
第46d张图,数字目标是:7,预测结果是7
第47d张图,数字目标是:4,预测结果是4
第48d张图,数字目标是:7,预测结果是7
第49d张图,数字目标是:5,预测结果是5
第50d张图,数字目标是:6,预测结果是6
第51d张图,数字目标是:0,预测结果是0
第52d张图,数字目标是:0,预测结果是0
第53d张图,数字目标是:9,预测结果是9
第54d张图,数字目标是:4,预测结果是4
第55d张图,数字目标是:8,预测结果是8
第56d张图,数字目标是:0,预测结果是0
第57d张图,数字目标是:8,预测结果是8
第58d张图,数字目标是:1,预测结果是1
第59d张图,数字目标是:6,预测结果是6
第60d张图,数字目标是:2,预测结果是2
第61d张图,数字目标是:6,预测结果是6
第62d张图,数字目标是:1,预测结果是1
第63d张图,数字目标是:1,预测结果是2
第64d张图,数字目标是:6,预测结果是6
第65d张图,数字目标是:5,预测结果是3
第66d张图,数字目标是:7,预测结果是7
第67d张图,数字目标是:1,预测结果是8
第68d张图,数字目标是:1,预测结果是1
第69d张图,数字目标是:3,预测结果是3
第70d张图,数字目标是:2,预测结果是2
第71d张图,数字目标是:8,预测结果是8
第72d张图,数字目标是:8,预测结果是8
第73d张图,数字目标是:8,预测结果是8
第74d张图,数字目标是:8,预测结果是8
第75d张图,数字目标是:1,预测结果是1
第76d张图,数字目标是:9,预测结果是9
第77d张图,数字目标是:8,预测结果是8
第78d张图,数字目标是:0,预测结果是0
第79d张图,数字目标是:8,预测结果是8
第80d张图,数字目标是:0,预测结果是0
第81d张图,数字目标是:2,预测结果是2
第82d张图,数字目标是:3,预测结果是3
第83d张图,数字目标是:5,预测结果是8
第84d张图,数字目标是:9,预测结果是9
第85d张图,数字目标是:2,预测结果是2
第86d张图,数字目标是:3,预测结果是3
第87d张图,数字目标是:4,预测结果是4
第88d张图,数字目标是:2,预测结果是2
第89d张图,数字目标是:0,预测结果是0
第90d张图,数字目标是:4,预测结果是6
第91d张图,数字目标是:7,预测结果是7
第92d张图,数字目标是:8,预测结果是8
第93d张图,数字目标是:6,预测结果是6
第94d张图,数字目标是:5,预测结果是4
第95d张图,数字目标是:9,预测结果是9
第96d张图,数字目标是:2,预测结果是9
第97d张图,数字目标是:4,预测结果是4
第98d张图,数字目标是:8,预测结果是8
第99d张图,数字目标是:9,预测结果是9
 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值