• tensorflow——MNIST机器学习入门


    这里的代码在项目中执行下载并安装数据集。

    执行下面代码,训练、并评估模型:

     1 # _*_coding:utf-8_*_
     2 import inputdata
     3 mnist = inputdata.read_data_sets('MNIST_data', one_hot=True)
     4 
     5 import tensorflow as tf
     6 
     7 x = tf.placeholder("float",[None, 784])
     8 W = tf.Variable(tf.zeros([784,10]))
     9 b = tf.Variable(tf.zeros([10]))
    10 
    11 y = tf.nn.softmax(tf.matmul(x,W) + b)    # 预测值
    12 y_ = tf.placeholder("float", [None, 10])    # 真实值
    13 
    14 # 训练模型
    15 cross_entropy = -tf.reduce_sum(y_*tf.log(y))    # 交叉熵,交叉熵是用来衡量我们的预测用于描述真相
    16                                                 # 的低效性。注意这里是对所有记录所有假设的sum操作
    17 
    18 train_step= tf.train.GradientDescentOptimizer(0.01).minimize(cross_entropy)    # 调用梯度下降,TensorFlow会自动使用反向传播算法
    19                                                                                # 并且通过minimize来指定要最小化的代价方程
    20 
    21 # 初始化变量
    22 init = tf.initialize_all_variables()
    23 
    24 # 运行
    25 sess = tf.Session()
    26 sess.run(init)
    27 
    28 for i in range(1000):
    29     batch_xs, batch_ys = mnist.train.next_batch(100)    # 随机训练 (stochastic training), 减小计算开销
    30     sess.run(train_step, feed_dict={x: batch_xs, y_:batch_ys})
    31 
    32 # 评估模型
    33 correct_prediction = tf.equal(tf.argmax(y, 1), tf.argmax(y_, 1))    # argmax返回的是沿着某个轴的最大值的索引值
    34 
    35 accuracy = tf.reduce_mean(tf.cast(correct_prediction, "float"))    # cast把布尔值转为浮点值
    36 
    37 print sess.run(accuracy, feed_dict={x: mnist.test.images, y_:mnist.test.labels})
    38 
    39 sess.close()

    运行结果:(由于是随机训练每次结果可能一样)

    0.9131
  • 相关阅读:
    概念理解及常用方法
    WeX5触发事件
    前端页面问题小结
    高性能 CSS3 动画
    IScroll5中文API整理,用法与参考
    关于浏览器兼容之mate标签
    HTMl5的sessionStorage和localStorage
    web app iphone4 iphone5 iphone6 响应式布局 适配代码
    Javascript模板引擎分享
    css3 media媒体查询器用法总结
  • 原文地址:https://www.cnblogs.com/DianeSoHungry/p/7148359.html
Copyright © 2020-2023  润新知