查看: 219|回复: 0

[原创] [up-board开发板]+tensorflow mnist测试

[复制链接]

52

主题

4

好友

5836

积分

状元

Rank: 6Rank: 6

  • TA的每日心情
    开心
    2016-12-9 14:11
  • 签到天数: 710 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2017-1-5 23:01:24 |显示全部楼层
    我现在正在使用UP Board发帖!!!!!!!!!!!!!!!!

    MNIST这个实验是官方提供的一个作为机器学习入门的列成,这个教程包含大量的计算机机器视觉的数据,这些数据是以由大量的手写图片的组成,这些图片是以二进制的形式保存的,所以无法以图片的形式打开这些文件。这些图片数据都是有标签的,比如手写图片数字4,那么这张图片的标签为4,这些数据的意义在于,可以通过这些数据训练出一个模型用于预测被检测图片中的数字,这个教程目的不是教会我们如何训练一个高效能的手写数字预测模型,而是将这个过程用tensorflow来开发,作为一个tensorflow的入门实验,仅此而已!
    MNIST的数据可以到它的官网下载:http://yann.lecun.com/exdb/mnist/
    分享我下载的:
    t10k-images-idx3-ubyte.gz (1.57 MB, 下载次数: 0)
    t10k-labels-idx1-ubyte.gz (4.44 KB, 下载次数: 2)
    train-images-idx3-ubyte.gz (9.45 MB, 下载次数: 0)
    train-labels-idx1-ubyte.gz (28.2 KB, 下载次数: 0)

    这些数据tensorflow其实也提供脚本的下载方式,但是可能应为在国内的原因,下载太慢,所以我都是将下载的文件直接放到自己的python代码同级的目录下,用一个名称为MNIST_data的目录下:
    tensorflow3.png

    我只教大家如何将MNIST这个实验运行起来,关于算法的和程序的讲解就不一一展开了。
    我的测试程序如下:
    1. import tensorflow as tf
    2. import numpy as np
    3. import input_data


    4. def init_weights(shape):
    5.     return tf.Variable(tf.random_normal(shape, stddev=0.01))


    6. def model(X, w):
    7.     return tf.matmul(X, w) # notice we use the same model as linear regression, this is because there is a baked in cost function which performs softmax and cross entropy


    8. mnist = input_data.read_data_sets("MNIST_data/", one_hot=True)
    9. trX, trY, teX, teY = mnist.train.images, mnist.train.labels, mnist.test.images, mnist.test.labels

    10. X = tf.placeholder("float", [None, 784]) # create symbolic variables
    11. Y = tf.placeholder("float", [None, 10])

    12. w = init_weights([784, 10]) # like in linear regression, we need a shared variable weight matrix for logistic regression

    13. py_x = model(X, w)

    14. cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(py_x, Y)) # compute mean cross entropy (softmax is applied internally)
    15. train_op = tf.train.GradientDescentOptimizer(0.05).minimize(cost) # construct optimizer
    16. predict_op = tf.argmax(py_x, 1) # at predict time, evaluate the argmax of the logistic regression

    17. sess = tf.Session()
    18. init = tf.initialize_all_variables()
    19. sess.run(init)

    20. for i in range(100):
    21.     for start, end in zip(range(0, len(trX), 128), range(128, len(trX), 128)):
    22.         sess.run(train_op, feed_dict={X: trX[start:end], Y: trY[start:end]})
    23.     print i, np.mean(np.argmax(teY, axis=1) ==
    24.                      sess.run(predict_op, feed_dict={X: teX, Y: teY}))
    复制代码
    应为一些代码格式的问题,直接分享我的源码:
    LogisticRegression.py.tar.gz (841 Bytes, 下载次数: 0)

    cd 到代码存放的目录下,执行:python LogisticRegression.py

    tensorflow4.png

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    关闭

    站长推荐上一条 /4 下一条

    手机版|爱板网 |网站地图  

    GMT+8, 2017-6-25 13:19 , Processed in 0.143492 second(s), 11 queries , Memcache On.

    苏公网安备 32059002001056号

    Powered by Discuz!

    回顶部