您的位置:首页 > 理论基础 > 计算机网络

如何利用训练好的神经网络进行预测

2017-04-05 23:22 991 查看
如何利用训练好的神经网络进行预测?首先重构训练好的神经网络,上一篇文章有介绍,这里只是贴出重构的代码:

import h5py from keras.models import model_from_json
#读取model
model=model_from_json(open('my_model_architecture.json').read())
model.load_weights('my_model_weights.h5')


然后要输入所预测的手写数字的图片,这里下载了手写数字的图片集。这里是下载地址:

http://dl.download.csdn.net/down11/20161108/673b49764f34b451ef1552babf01cb39.zip?response-content-disposition=attachment%3Bfilename%3D%22train_set.zip%22&OSSAccessKeyId=9q6nvzoJGowBj4q1&Expires=1491384978&Signature=C8WwVZ0x4ufivI1pfFo%2ByzSVvJo%3D

下载解压好之后,复制一张图片到py文件的路径之下。接下来就开始读取图片。

如何利用matplotlib来读取图片呢?

import matplotlib.pyplot as plt # plt 用于显示图片
import matplotlib.image as mpimg # mpimg 用于读取图片
import numpy as np
lena = mpimg.imread('lena.png') # 读取和代码处于同一目录下的 lena.png此时 lena 就已经是一个 np.array 了,可以对它进行任意处理
lena.shape #(512, 512, 3)
plt.imshow(lena) # 显示图片
plt.axis('off') # 不显示坐标轴
plt.show()


接下来就可以预测我们复制到py文件的路径之下的图片中手写数字是多少了,下面贴上代码:

#coding: utf-8
from keras.models import model_from_json
import matplotlib.pyplot as plt # plt 用于显示图片
import matplotlib.image as mpimg # mpimg 用于读取图片
lena = mpimg.imread('38.jpg') # 读取和代码处于同一目录下的
plt.imshow(lena)
plt.show()  # 显示图片
lena = lena.reshape(1, 1, 28, 28).astype('float32')
lena = lena/255    #统一格式
model = model_from_json(open('my_model_architecture.json').read())
model.load_weights('my_model_weights.h5')    #加载模型
pre=model.predict_classes(lena)   #  预测
print(pre)


复制的预测图片:



我们预测出来的结果:



这里笔者碰在对读取的图片的格式进行修改的时候,出现了一个错误:

ValueError: Error when checking : expected conv2d_1_input to have 4 dimensions, but got array with shape (28, 28)


需要加上这样两句:

lena = lena.reshape(1, 1, 28, 28).astype('float32')
lena = lena/255    #统一格式


这是需要用reshape定义出例子的个数,图片的 通道数,图片的长与宽。具体的参加keras文档。

参考文献:

1、http://www.cnblogs.com/yinxiangnan-charles/p/5928689.html 2017.4.5

2、http://stackoverflow.com/questions/43076259/how-to-predict-my-own-image-using-cnn-in-keras-after-training-on-mnist-dataset 2017.4.5

3、http://keras-cn.readthedocs.io/en/latest/ 2017.4.5
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐