资源简介

用python编写的,基于tensorflow深度学习的框架的手写数字识别的完整代码,有注释,可运行,无bug

资源截图

代码片段和文件信息

#coding:utf-8

import tensorflow as tf
import numpy as np
from PIL import Image
import mnist_backward
import mnist_forward

def restore_model(testPicArr):
    with tf.Graph().as_default() as tg:
        x = tf.placeholder(tf.float32[None mnist_forward.INPUT_NODE])
        y = mnist_forward.forward(xNone)
        preValue = tf.argmax(y1)

        #实例化带有滑动平均值得saver
        variable_averages = tf.train.ExponentialMovingAverage(mnist_backward.MOVING_AVERAGE_DECAY)
        variables_to_restore = variable_averages.variables_to_restore()
        saver = tf.train.Saver(variables_to_restore)

        with tf.Session() as sess:
            ckpt = tf.train.get_checkpoint_state(mnist_backward.MODEL_SAVE_PATH)
            if ckpt and ckpt.model_checkpoint_path:
                saver.restore(sess ckpt.model_checkpoint_path)

                preValue = sess.run(preValue feed_dict={x:testPicArr})
                return preValue
            else:
                print(“No checkpoint file found“)
                return -1


def pre_pic(picName):
    img = Image.open(picName)
    #用消除锯齿的方法将图片改为28*28像素
    reIm = img.resize((2828)Image.ANTIALIAS)
    #利用reIm.convert(‘L‘)变成灰度图
    im_arr = np.array(reIm.convert(‘L‘))
    threshold =70

# =============================================================================
#     for i in range(28):
#         for j in range(28):
#             im_arr[i][j] = 255 - im_arr[i][j]
#             print(“ “im_arr[i][j]end=““)
#         print(“\n“end=““)
# =============================================================================
        
    #要改为黑底白字
    for i in range(28):
        for j in range(28):
            im_arr[i][j] = 255 - im_arr[i][j]
            if im_arr[i][j] < threshold:
                im_arr[i][j]=0
            else:
                im_arr[i][j] = 1

    for i in range(28):
        for j in range(28):
            print(“ “im_arr[i][j]end=““)
        print(“\n“end=““)
# =============================================================================
#     for i in range(28):
#         for j in range(28):
#             print(“ “im_arr[i][j]end=““)
#         print(“\n“end=““)
# =============================================================================
        
        
    nm_arr = im_arr.reshape([1784])
    #改为浮点型
    nm_arr = nm_arr.astype(np.float32)
    #把数据变为0到255之间
    #img_ready = np.multiply(nm_arr 1.0/255.0)
    img_ready = nm_arr

    return img_ready

def application():
    testNum= input(“输入测试图片数:“)
    testNum = int(testNum)
    for i in range(testNum):
        testPic = input(“输入图片的路径:“)
        testPicArr = pre_pic(testPic)
        preValue = restore_model(testPicArr)
        print(“智慧的我预测数字为:“preValue)

def main():
    application()

if __name__ == ‘__main__‘:
    main()
        





















                             

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2019-01-16 17:11  __pycache__\
     文件        2159  2018-08-23 09:54  __pycache__\mnist_backward.cpython-36.pyc
     文件         943  2018-08-21 22:22  __pycache__\mnist_forward.cpython-36.pyc
     目录           0  2019-01-16 17:11  data\
     文件     1648877  2018-08-22 12:15  data\t10k-images-idx3-ubyte.gz
     文件        4542  2018-08-22 12:15  data\t10k-labels-idx1-ubyte.gz
     文件     9912422  2018-08-22 12:15  data\train-images-idx3-ubyte.gz
     文件       28881  2018-08-22 12:15  data\train-labels-idx1-ubyte.gz
     文件        3114  2018-08-30 11:39  mnist_app.py
     文件        2461  2018-08-22 14:52  mnist_backward.py
     文件         732  2018-08-21 22:22  mnist_forward.py
     文件        1933  2018-08-23 10:09  mnist_test.py
     目录           0  2019-01-16 17:11  model\
     文件         235  2018-09-09 00:07  model\checkpoint
     文件     3180084  2018-08-23 10:02  model\mnist_model-45001.data-00000-of-00001
     文件         447  2018-08-23 10:02  model\mnist_model-45001.index
     文件       59483  2018-08-23 10:02  model\mnist_model-45001.meta
     文件     3180084  2018-08-23 10:02  model\mnist_model-46001.data-00000-of-00001
     文件         447  2018-08-23 10:02  model\mnist_model-46001.index
     文件       59483  2018-08-23 10:02  model\mnist_model-46001.meta
     文件     3180084  2018-08-23 10:02  model\mnist_model-47001.data-00000-of-00001
     文件         447  2018-08-23 10:02  model\mnist_model-47001.index
     文件       59483  2018-08-23 10:02  model\mnist_model-47001.meta
     文件     3180084  2018-08-23 10:02  model\mnist_model-48001.data-00000-of-00001
     文件         447  2018-08-23 10:02  model\mnist_model-48001.index
     文件       59483  2018-08-23 10:02  model\mnist_model-48001.meta
     文件     3180084  2018-08-23 10:03  model\mnist_model-49001.data-00000-of-00001
     文件         447  2018-08-23 10:03  model\mnist_model-49001.index
     文件       59483  2018-08-23 10:03  model\mnist_model-49001.meta
     文件     3180084  2018-09-09 00:06  model\mnist_model-49002.data-00000-of-00001
     文件         447  2018-09-09 00:06  model\mnist_model-49002.index
............此处省略27个文件信息

评论

共有 条评论