如何利用训练好的神经网络进行预测
2017-04-05 23:22
991 查看
如何利用训练好的神经网络进行预测?首先重构训练好的神经网络,上一篇文章有介绍,这里只是贴出重构的代码:
然后要输入所预测的手写数字的图片,这里下载了手写数字的图片集。这里是下载地址:
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来读取图片呢?
接下来就可以预测我们复制到py文件的路径之下的图片中手写数字是多少了,下面贴上代码:
复制的预测图片:
我们预测出来的结果:
这里笔者碰在对读取的图片的格式进行修改的时候,出现了一个错误:
需要加上这样两句:
这是需要用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
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
相关文章推荐
- Keras 如何利用训练好的神经网络进行预测
- 如何利用训练好的神经网络进行预测
- 如何保存训练好的神经网络直接进行测试-TensorFlow模型持久化
- 如何利用神经网络结合遗传算法进行非线性函数极值寻优(1)
- 如何利用神经网络结合遗传算法进行非线性函数极值寻优(2)
- 利用MATLAB 2016a进行BP神经网络的预测(含有神经网络工具箱)
- matlab利用训练好的BP神经网络来预测新数据(先保存网络,再使用网络)
- 深度学习系列教程 - 1.2.2 神经网络是如何进行预测的?
- 如何利用BP网络进行神经网络变量筛选
- 【神经网络与深度学习】用训练好的caffemodel来进行分类
- 利用MATLAB 2016a进行BP神经网络的预测(含有神经网络工具箱)
- 如何利用自组织竞争网络进行患者癌症发病预测
- 深度学习-CAFFE利用CIFAR10网络模型训练自己的图像数据获得模型-4应用生成模型进行预测
- Torch7学习(六)——学习神经网络包的用法(4)——利用optim进行训练
- 第三期 利用已经训练的神经网络进行图像识别 《显卡就是开发板》
- torch入门笔记11:如何训练神经网络
- 使用matlab版卷及神经网络 MatconvNe和预训练的imageNet进行图像检Image retrieval using MatconvNet and pre-trained imageNet
- [置顶] 基于DL的计算机视觉(8)-- 神经网络是如何训练的
- 【神经网络与深度学习】Caffe使用step by step:使用自己数据对已经训练好的模型进行finetuning
- 如何加强神经网络训练