• MNIST手写识别(二)


    通过TensorFlow实现多层感知机,识别MNIST数据集,最终正确率98%左右。

    ## 通过TensorFlow实现多层感知机,识别MNIST数据集
    
    from tensorflow.examples.tutorials.mnist import input_data
    import tensorflow as tf
    mnist = input_data.read_data_sets("MNIST_data/",one_hot=True)
    sess = tf.InteractiveSession()
    
    
    # 给隐含层参数设置Variable并初始化
    in_units = 784 #输入节点数
    h1_units = 300 #隐含层输出节点数(此模型中200-1000区别都不大)
    W1 = tf.Variable(tf.truncated_normal([in_units, h1_units], stddev=0.1)) #权重初始化为标准差为0.1的截断的正态分布
    b1 = tf.Variable(tf.zeros([h1_units])) #偏置初始化为0
    W2 = tf.Variable(tf.zeros([h1_units, 10]))
    b2 = tf.Variable(tf.zeros([10]))
    # 定义输入x的placeholder
    x = tf.placeholder(tf.float32, [None, in_units])
    keep_prob = tf.placeholder(tf.float32) #keep_prob通常训练时小于1,测试时等于1
    
    
    # 定义模型结构,首先定义隐含层
    hidden1 = tf.nn.relu(tf.matmul(x, W1) + b1)
    hidden1_drop = tf.nn.dropout(hidden1, keep_prob)
    y = tf.nn.softmax(tf.matmul(hidden1_drop, W2) + b2)
    # 定义损失函数cross_entropy
    y_ = tf.placeholder(tf.float32, [None, 10])
    cross_entropy = tf.reduce_mean(-tf.reduce_sum(y_ * tf.log(y),reduction_indices=[1]))
    # 优化器选择自适应优化器Adagrad
    train_step = tf.train.AdagradOptimizer(0.3).minimize(cross_entropy)
    
    
    # 训练模型
    tf.global_variables_initializer().run()
    for i in range(3000):
        batch_xs, batch_ys = mnist.train.next_batch(100)
        train_step.run({x: batch_xs, y_: batch_ys, keep_prob: 0.75})
    
    
    # 对准确率进行验证
    correct_prediction = tf.equal(tf.argmax(y,1),tf.argmax(y_,1))
    accuracy = tf.reduce_mean(tf.cast(correct_prediction,tf.float32))
    print(accuracy.eval({x: mnist.test.images,y_: mnist.test.labels, keep_prob: 1.0}))

  • 相关阅读:
    python-使用pyecharts绘制各省份985学校数量图
    python-将多个表格的信息合并到一个表格中
    python-使用百度AipOcr实现表格文字图片识别
    python安装OCR识别库
    python-一种去掉前后缀获取子串的方法
    python-一种字符串排序方式
    How to write educational schema.
    RabbitMq related
    OPENId是什么, OAUTH 是什么
    使用abp的 redis cache
  • 原文地址:https://www.cnblogs.com/yucen/p/9343571.html
Copyright © 2020-2023  润新知