TensorFlow北大公开课学习笔记-6.1输入手写数字图片输出识别结果(结合5.3程序)

#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(x,None)
        preValue=tf.argmax(y,1)

        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)
    reIm=img.resize((28,28),Image.ANTIALIAS)
    im_arr=np.array(reIm.convert('L'))
    threshold=50
    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]=255

    nm_arr=im_arr.reshape([1,784])
    nm_arr=nm_arr.astype(np.float32)
    img_ready=np.multiply(nm_arr,1.0/255.0)

    return img_ready

def application():
    testNum=input("input the number of test pictures:")
    for i in range(int(testNum)):
        testPic=input("the path of test picture:")
        testPicArr=pre_pic(testPic)
        preValue=restore_model(testPicArr)
        print("The prediction number is :",preValue)

def main():
    application()

if __name__=='__main__':
    main()
E:\sxl_Programs\Python\venv\Scripts\python.exe E:/sxl_Programs/Python/TensorFlow/mnist_app.py
input the number of test pictures:3
the path of test picture:0.png
2018-08-05 15:13:14.396416: I T:\src\github\tensorflow\tensorflow\core\platform\cpu_feature_guard.cc:140] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2
The prediction number is : [0]
the path of test picture:2.png
The prediction number is : [2]
the path of test picture:3.png
The prediction number is : [3]

Process finished with exit code 0

猜你喜欢

转载自blog.csdn.net/sxlsxl119/article/details/81431447