注:本系列文章主要是复现北京大学TensorFlow笔记中的代码,方便以后使用,并没有详细讲解流程,因为我并不是专门做教程的。何况北大的教程讲的已经很好了,有需要了解详细过程的可以去看北大的教程哈。
#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