拿自己的手写数字试了下之前拿mnist训练的cnn模型;
代码和示例中用的cnn代码一样的,最后加了个保存模型和处理图像的部分;
saver = tf.train.Saver() # defaults to saving all variables;记录;
saver.save(sess, '.../number_model.ckpt') #保存模型参数;
#加了一个函数处理图像;
def imageprepare(infile):
im = Image.open(infile).convert('1')
im=im.resize((28,28))
plt.imshow(im)
plt.show()
data1 = np.asarray(im.getdata()) # 这个得到的矩阵里,255是白色,0是黑色;让它变成0是白,1是黑;
data1 = (255-data1)/255
return data1
infile=".../original_img.jpg"#在画图随手画了个,保存在路径下;
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
saver.restore(sess, "D:/coding/number_model.ckpt")#.restore()恢复之前保存的变量;
result1=imageprepare(infile)
prediction=tf.argmax(y_conv,1)
predint=prediction.eval(feed_dict={x: [result1],keep_prob: 1.0}, session=sess)
print(h_conv2)
print('recognize result:')
print(predint[0])