#coding:utf-8import tensorflow as tf
import numpy as np
from PIL import Image
import mnist_backward
import mnist_forward
defrestore_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 -1defpre_pic(picName):
img=Image.open(picName)
reIm=img.resize((28,28),Image.ANTIALIAS)
im_arr=np.array(reIm.convert('L'))
threshold=50for 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]=0else: 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
defapplication():
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)
defmain():
application()
if __name__=='__main__':
main()
E:\sxl_Programs\Python\venv\Scripts\python.exe E:/sxl_Programs/Python/TensorFlow/mnist_app.py
input thenumberof test pictures:3the path of test picture:0.png
2018-08-0515: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 numberis : [0]
the path of test picture:2.png
The prediction numberis : [2]
the path of test picture:3.png
The prediction numberis : [3]
Process finished withexit code 0