项目所用的卷积神经网络是由两个卷积层,两个池化层,三个全连接层组成
一、概述
要想有一个神经网络来达到输入一张图片就能识别出这张图片的效果,就需要训练这个神经网络,训练神经网络这个过程的实质就是设置神经网络中的参数值,合理有效的神经网络才能实现识别。系统中使用监督学习的方式来训练这个神经网络。使用前向传播算法来获得预测值,再用损失函数表示计算预测值和正确答案之间的差距,使用反向传播算法和梯度下降算法来调整网络中的参数。
二、系统各模块具体实现
- 图片的采集
要事先收集这10种花的大量图片,放在指定文件夹里,作为训练集,图片数量不能太少,因为花卉的图片属于像素较高,比较复杂的图片,如果训练用的图片不够多,训练出来的神经网络模型会因为训练不足而识别准确率较低。
2.创建标签分类函数
对神经网络的训练方式的监督学习的方式,所以所有训练的图片都是事先知道分类的,那么需要一个函数来给每一种图片打上对应的不同的标签,以此来表示分类的正确结果。
3.获取图片批次函数
将图片分批次地传入神经网络里训练,这种方式提高了内存利用率。需要定义一个get_batch()来一批批地获取数据,在分成一个个batch之前,先要将图片集和标签集都转换成可识别的格式。
三、项目部分截图
本项目用的是Alexnet网络模型结构,还有最后设计的pyqt界面(包含项目代码、训练集、项目设计文档)