基于深度学习VGG模型的花卉分类方法设计_第1页
基于深度学习VGG模型的花卉分类方法设计_第2页
基于深度学习VGG模型的花卉分类方法设计_第3页
基于深度学习VGG模型的花卉分类方法设计_第4页
基于深度学习VGG模型的花卉分类方法设计_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

湖南商务职业技术学院毕业设计

目录

1引言..............................................................1

1.1项目背景...................................................1

1.2开发环境与工具.............................................1

1.2.1Python简介.............................................1

1.2.2Anaconda实现步骤.......................................2

1.2.3Pycharm简介............................................2

1.2.4Python第三方库实现.....................................2

2需求分析..........................................................3

2.1可行性需求分析.............................................3

2.2数据集采集功能分析.........................................4

2.2.1数据集简介.............................................4

2.2.2数据集特点.............................................5

2.3关键技术分析...............................................6

2.3.1数据采集技术...........................................6

2.3.2VGG网络................................................7

2.3.3数据集可视化技术.......................................7

2.3.4卷积神经网络...........................................8

3数据采集..........................................................9

3.1数据集需求分析.............................................9

3.2数据集获取分析............................................10

3.3编程实现..................................................10

4数据集处理.......................................................11

4.1数据预处理................................................11

4.2数据增强..................................................12

4.3训练集、验证集和测试集的划分..............................13

5模型构建及评估分析...............................................14

5.1模型构建..................................................14

I

湖南商务职业技术学院毕业设计

5.1.1模型网络结构..........................................14

5.2模型编译..................................................15

5.2.1优化器设置............................................15

5.2.2损失函数设置..........................................16

5.3模型训练与调优............................................16

5.3.1模型训练设置..........................................16

5.3.2学习率调优............................................17

5.3.3batch_size设置........................................18

5.3.4保留训练权重..........................................18

5.4模型部署..................................................18

5.4.1系统前端设置..........................................18

5.4.2系统效果展示及分析....................................19

6小结.............................................................21

参考资料............................................................23

II

湖南商务职业技术学院毕业设计

基于深度学习VGG模型的花卉分类方法设计

1引言

植物分类是植物科学领域至关重要的基础性工作,具有深刻的意义,其主

要通过观察植物的叶、花、果实等外观特征,从而对植物进行不同的分类。花

卉分类作为植物分类学中不可或缺的关键部分,其分类结果对于植物发现更是

起着至关重要的作用。现如今,人工智能等技术的快速发展,使得人们对于花

卉图像的获取越来越简单和便捷,只需要利用手机、相机等移动设备便可以轻

松获取各类花卉图像,但多数人都无法对获取的花卉图像种类进行准确地辨别。

与此同时,由于花卉分布范围广、不同种类间差异性小,往往需要专业人士对

花卉进行精确的分类,造成大量的人力损耗。因此,我们需要借助现代科技来

对花卉图像进行分类识别,解决传统的人工图像分类方法所带来的问题。

1.1项目背景

建立图像识别技术的需求:随着互联网和智能终端的普及,图像识别技术

在各个领域愈发重要,特别是在电商和个性化推荐等领域,识别花卉图像,实

现对花卉的自动分类和标注,可以为用户提供更加智能化便捷的体验。

VGG模型的优势:VGG模型是深度学习中的一种经典卷积神经网络,其具

有深度和卷积思想,在图像识别领域表现良好。VGG模型在ImageNet图像识别

竞赛中取得了很好的成绩,因此在花卉识别领域的应用也备受关注。

传统的花卉分类方法的不足:传统的花卉分类方法通常需要人工提取特征,

且分类效果受到特征的选择和手工设计的局限,而且工作量大、效率低,无法

满足大规模图像分类的需求。

综上所述,基于VGG模型的花卉分类方法项目的开发,无疑是符合当前时

代需求,解决了传统标注花卉分类方法的局限,并且可以为用户提供更加智能

化便捷的体验。

1.2开发环境与工具

1.2.1Python简介

Python由荷兰数学和计算机科学学会的吉多·范罗苏姆于1990年代初设

计,作为一门叫做ABC语言的替代品。提供了高效的高级数据结构,还能简单

1

湖南商务职业技术学院毕业设计

有效地面向对象编程。Python语法和动态类型,以及解释型语言的本质,使它

成为多数平台上写脚本和快速开发应用的编程语言,随着版本的不断更新和语

言新功能的添加,逐渐被用于独立的、大型项目的开发。

Python解释器易于扩展,可以使用C语言或C++(或者其他可以通过C调

用的语言)扩展新的功能和数据类型。Python也可用于可定制化软件中的扩展

程序语言。Python丰富的标准库,提供了适用于各个主要系统平台的源码或机

器码。

1.2.2Anaconda实现步骤

Anaconda,中文大蟒蛇,是一个开源的Anaconda是专注于数据分析的

Python发行版本,包含了conda、Python等190多个科学包及其依赖项。

Anaconda就是可以便捷获取包且对包能够进行管理,包括了python和很多

常见的软件库和一个包管理器conda。常见的科学计算类的库都包含在里面了,

使得安装比常规python安装要容易,同时对环境可以统一管理的发行版本。

1.2.3Pycharm简介

PyCharm是一种集成开发环境(IDE),专门用于Python开发。它由JetBrains

公司开发,提供了丰富的功能和工具,如代码智能提示、自动补全、调试器、

版本控制等,可以帮助开发者更高效地开发Python应用程序。PyCharm有两个

版本,分别是社区版和专业版。社区版是免费的,专业版则需要付费购买,并

提供更多高级功能。

1.2.4Python第三方库实现

Scipy:数学、科学和工程计算功能库,提供了一些数学算法及工程数据运

算功能;类似Matlab。

Seaborn:统计类数据可视化功能库,主要展示数据间分布、分类和线性关

系等内容。

Dash:是一个比较新的软件包,是用纯Python构建数据可视化app的理想选

择,所以特别适合任何处理数据的人。Dash是Flask、Plotly.js和React.js的混合。

BeautifulSoup:HTML和XML的解析库,可以对HTML、XML格式进行

解析,从中提取相关信息;还可以对所提供的任何格式进行相关的数据爬取,

而且对它进行树形解析。

NumPy库是Python数据分析的基础,是处理数组的Python库,NumPy库

2

湖南商务职业技术学院毕业设计

的数据结构比Python自带的更加高效。

pandas:数据分析并保存为csv文件,python数据分析高层次应用库,还可

以进行数据清洗。

matplotlib:高质量的二维数据可视化功能库,超过100种数据可视化展示

效果;通过matplotlib.pyplot子库调用各可视化效果。

pyecharts:绘图。

Python拥有丰富的第三方库生态系统,给开发者带来了极大的便利。

2需求分析

2.1可行性需求分析

1.技术可行性

PyCharm是一款非常流行的Python集成开发环境(IDE),它具有许多功

能和工具,可以帮助Python开发人员更高效地编写、调试和测试代码。PyCharm

支持许多Python框架和库,包括Django、Flask、Pyramid等,可以更轻松地开

发Web应用程序、数据分析和科学计算等各种应用。此外,PyCharm还提供了

许多有用的功能,如代码自动完成、语法检查、版本控制、调试器等,这些功

能可以帮助您更快速地开发Python项目。

使用VGG模型进行花卉分类是非常可行的技术。VGG模型是一个深度卷

积神经网络,其在ImageNet数据集上取得了很好的效果,并在计算机视觉领域

得到广泛应用。该网络由多个卷积层和池化层组成,可以提取图像特征,并将

其传递给全连接层进行分类。

对于花卉分类任务,可以使用VGG模型对花卉图像进行训练,并使用预训

练的VGG模型作为特征提取器,然后将提取的特征输入到一个分类器中进行分

类。此外,还可以通过微调预训练的VGG模型,使其在花卉分类任务中表现更

好。

总之,使用VGG模型进行花卉分类是非常可行的技术,可以通过合理的训

练和调整,获得较好的分类效果。

2.项目可行性

VGG模型已经在大规模图像识别任务上训练过,可以提取出图像的高级特

征。将这些特征输入到全连接层进行分类,可以得到较好的分类效果。在使用

VGG模型进行花卉分类时,需要有一个足够大的、包含各种类型花卉的数据集

进行训练。同时,还需要对模型进行调参和优化,以获得最佳性能。总之,使

3

湖南商务职业技术学院毕业设计

用VGG模型进行花卉分类是可行的。

3.操作可行性

基于VGG模型花卉分类的操作可行性较高,具体内容如下:

(1)数据收集:需要收集大量的花卉图像数据,并进行标注。可以使用公

开的花卉数据集,如Oxford102FlowerDataset、Flower-17等,也可以自己搜集

数据。

(2)数据预处理:对数据进行预处理,包括图像缩放、裁剪、归一化等。

这些操作可以提高模型的训练效果。

(3)模型选择和训练:选择合适的VGG模型,并使用收集到的数据对模

型进行训练。在训练过程中,需要对模型进行充分的调参,以达到最佳的分类

效果。

(4)模型评估和优化:使用测试数据对模型进行评估,并根据评估结果进

行优化。可以使用各种指标来评估模型的性能,如准确率、精确率、召回率等。

(5)部署和应用:将训练好的模型部署到实际应用中,对新的花卉图像进

行分类。可以使用各种工具和框架来实现部署,如TensorFlowServing、Flask等。

总之,基于VGG模型花卉分类的操作可行性较高,但需要注意数据收集和

预处理、模型选择和训练、模型评估和优化等方面的细节,以获得最佳的分类

效果。

2.2数据集采集功能分析

此次项目的数据集来源于百度和公开的数据集,是通过python在百度搜索

关键字“花卉数据集”爬取下载好五类品种的花卉进行分类设计,数据清洗后共

500条记录,以此尽可能保证数据可靠性。

爬取到这些花卉分类数据集的类别主要有:雏菊、蒲公英、玫瑰、郁金香、

向日葵。此次的主要目的是通过这些数据来分析哪一类花的置信度会更高,这

样我们能根据需求量大小从而培育更多这类花卉。其次这些数据可以给一些与

花卉商户提供发展建议与售卖标准。

2.2.1数据集简介

一般而言,这类数据集应该包括大量的花卉图像,每张图像应该有对应的

标签,即花卉的种类。在训练模型时,应该将这些图像随机分为训练集、验证

集和测试集。训练集用于模型的训练和参数调整,验证集用于模型训练过程中

的验证和参数选择,测试集则用于测试模型的准确率。

4

湖南商务职业技术学院毕业设计

2.2.2数据集特点

为了提升模型的分类准确率,一个好的数据集应该具备以下特点:

1.代表性:数据集应该包含多种花卉的种类,并且每个分类应该包含足够数

量的图像,以保证模型可以学习到每种花卉的特征。

有5种类型{雏菊蒲公英玫瑰向日葵郁金香}等花,每种类型有600-900

张图形,如图2-1示

图2-1数据集下载类型展示图

2.一致性:在数据集中,每张图像应该以相同的方式进行标注,以保证模型

可以正确地识别每个花卉的种类。如图2-2示:

图2-2鸢尾种类分辩图

3.丰富性:数据集应该包含不同分辨率、光照、拍摄角度等因素下的花卉图

像,以提高模型的鲁棒性和泛化能力。如图2-3、2-4所示

5

湖南商务职业技术学院毕业设计

图2-3鸢尾数据集图

图2-4鸢尾特征分析图

除此之外,为了确保数据集的质量和减少误差,应该对数据集进行可视化

和数据清洗,以去除图像中有缺陷、重复或不清晰的部分。

2.3关键技术分析

2.3.1数据采集技术

获取到花卉分类数据集我们需要用到网络爬虫、数据库、API、数据清洗工

具、数据可视化工具、编程语言、代理服务器、消息队列。

网络爬虫:一种自动化程序,可以从互联网上抓取数据。

6

湖南商务职业技术学院毕业设计

数据库:用于存储和管理采集到的数据。

API:一种接口,可以让你从其他应用程序或者网站中获取特定的数据。

数据清洗工具:用于清洗、去重、过滤和转换数据,以便于分析和使用。

数据可视化工具:用于将数据转换为可视化图表和图形,以便于理解和分

析数据。

编程语言:如Python,用于编写和运行数据采集程序。

代理服务器:用于隐藏真实IP地址,防止被封禁或者限制访问。

消息队列:用于处理大量的异步任务,提高数据采集效率。

2.3.2VGG网络

早在2014年,在万众瞩目的ImageNet图象挑战赛中,VGG网络一鸣惊人,

一举拿下了分类第二名的优秀成绩。尽管随着人工智能的快速发展,VGG网络很

快就被更多新生代的优越模型所超越,但其稳定的特征提取能力仍然备受学者

关注,使其在当前的实际应用中始终占有一席之地。VGG网络通过使用多组尺寸

大小为3×3的小卷积,增加网络深度,提高了其模型的分类准确率,改善了神

经网络的性能。在实验中,作者主要采用了六种不同深度的VGG网络结构进行

测验,其中VGG16的应用最为广泛。除了使用小卷积替代大卷积外,VGG网络结

构还在卷积层之间添加了多个池化层,增大感受野,降低了模型的参数量。并

利用Softmax函数将输入特征值转化为0到1的概率数值。VGG网络结构如图

2-5所示:

图2-5VGG16网络结构

2.3.3数据集可视化技术

爬取花卉分类数据集后,读取数据集并实习数据集可视化:如图2-6所示:

图2-6数据集可视化

7

湖南商务职业技术学院毕业设计

VGG16网络卷积层前36个通道效果可视化如图2-7显示:

图2-7VGG16网络卷积层前36个通道效果可视化

2.3.4卷积神经网络

卷积神经网络主要由卷积层、池化层和全连接层这三种网络层组合而成。

1.卷积层

卷积层主要用来提取模型中的图像特征,在实际生活中,待解决的问题越

复杂,卷积运算的维度越高。在卷积运算中,卷积核是发展的重心,每个卷积

核都承担着提取特定特征的核心任务。卷积的计算方式如式(2-1):

lll1l

zwab(式2-1)

l1lk

式中zl表示第l层的净输入,表示第l1层激活值a和卷积核wR的

l

卷积,卷积核wlRk表示可学习的权重向量,bR表示可学习的偏置。

卷积最独特的特征是局部连接与权值共享。前一层中的神经元都仅与当前

层中神经元连接,如图2-1所示,这样形成的局部连接良好地减少了卷积层间

的连接数,降低了参数量。权值共享则表明卷积核提取特征图的种类。局部连

接与权值共享相辅相成,一方面减少了卷积神经网络中冗余的参数量,另一方

面也让神经网络具有了平移、缩放等特性。

11111

-10-3011000-2-1

211-10000=224

*

0-112100-1-100

12111

图2-8二维卷积示例

2.池化层

为了减少卷积神经网络中存在的过拟合现象,池化层应运而生,通过在两

个卷积层之间通过添加池化层,对上一个卷积层输出特征图做下采样操作,可

以在降维时保留卷积神经网络中的重要特征信息,增大感受。

8

湖南商务职业技术学院毕业设计

3数据采集

3.1数据集需求分析

在网站上爬到的花卉数据是通过以下操作获取:打开浏览器,首先登录

百度,在搜索栏中输入关键字:花卉种类,花卉分类,花卉识别,工作地点选

择全国点击搜索,观察图3-1,其中URL为:,然后点击页面下方的分页按钮,

同时观察URL,发现URL没有变化。

图3-1花卉数据网址页面

按F12调出开发者工具,刷新页面,如图3-2。利用全局搜索工具定位所需

数据位置,点击开发者工具上面的Headers字段,分析这是个什么请求,发现这

个是一个POST请求,那我们需要寻找它的的fromdata往下翻找,在最后找到

了表单数据FormData。

9

湖南商务职业技术学院毕业设计

图3-2数据网址Headers字段页面

3.2数据集获取分析

定位到我们所需要的数据所在的位置,复制第一个花卉名称:鸢尾花,调

出全局搜索框搜索,点击数据预览Preview,如图3-3,接下来我们分析它是以

什么形式的数据存放。显然这是一个json数据。

图3-3花卉数据集网址分析

3.3编程实现

导入所需库:

10

湖南商务职业技术学院毕业设计

图3-4导入所需要的库

从花卉数据集网站爬取图片,提取前50页数据,关键词为“花卉”。同时

导入这些库,使得我们的程序能够更好的运行,画图工具也能更好帮助我们展

示出效果图,如图3-5为花卉数据集中玫瑰(rose)部分花卉展示图:

图3-5花卉数据集中玫瑰(rose)部分花卉展示图

4数据集处理

数据清洗是指发现并改正数据文件中可识别的错误的最后一道关卡程序,

包括检查数据一致性,处理无效值和缺失值等。

数据质量评估重要指标还包括数据处理,数据处理是实现空间数据有序化

的必要过程,是检验数据质量的关键环节,是实现数据共享的关键步骤。

VGG模型花卉分类数据集处理是指将花卉图片数据集进行预处理和格式转

换,以便于用于训练VGG模型进行花卉分类。

4.1数据预处理

由于输入图片的尺寸在VGG网络提取特征时会受到一定的限制,为了提高

VGG模型的训练速度,需要对数据集中的图片进行数据预处理操作。针对数据集

中的训练集,将输入的花卉图片先进行镜像填充,并随机裁剪成固定尺寸;通

11

湖南商务职业技术学院毕业设计

过对数据集中的训练集图片数据随机左右翻转,以提高VGG网络模型泛化能力;

将图片进行转换和归一化,提高VGG网络收敛速度。针对数据集的测试集,为

了与测试集输入图像数据尺寸保持一致,将输入图像中心裁剪成固定尺寸,同

时对测试集图像进行格式转换和归一化操作。代码图如下:

图4-1数据预处理代码图

4.2数据增强

数据增强:对训练集进行数据增强操作,例如随机旋转、平移、缩放、添

加噪声等,以增加数据集的丰富性和泛化能力。

一般保存数据的方式有如下几种:

文件:txt、csv、excel、json等,保存的数据量小。

关系型数据库:mysql、oracle等,保存的数据量大。

非关系型数据库:Mongodb、Redis等键值对的形式存储数据,保存的数据

量大。

二进制文件:保存爬取的图片、视频、音频等格式数据。

这里我用to_csv()方法保存清洗后的数据,文件名为data,index=false输出

12

湖南商务职业技术学院毕业设计

不显示索引值,编码方式为gbk,如图4-2。

图4-2保存数据代码图

以下是基于Vgg模型的花卉分类方法的数据集处理的数据增强代码,

使用Keras的ImageDataGenerator实现:

在上面的代码中,ImageDataGenerator类可以实现图像数据的在线增强,包

括对图像进行随机旋转、水平翻转、随机剪切等操作。我们首先定义了训练数

据和验证数据的数据生成器,分别对训练数据和验证数据进行了图像增强和缩

放处理,然后定义生成器的批量大小、图片尺寸和类别类型。最后,我们可以

使用这些生成器来训练和评估VGG模型。

4.3训练集、验证集和测试集的划分

将数据集随机分成训练集、验证集和测试集。一般来说,对于小规模样本

集(几万量级),常用的分配比例是60%训练集、20%验证集、20%测试集。

对于大规模样本集(百万级以上),只要验证集和测试集的数量足够即可,例

如有100w条数据,那么留1w验证集,1w测试集即可。1000w的数据,同样

留1w验证集和1w测试集。超参数越少,或者超参数很容易调整,那么可以减

少验证集的比例,更多的分配给训练集。

对于图像分类任务,需要将每个类别的样本数量均匀分配到训练集、验证

集和测试集中,以确保各个集合中都包含不同类别的样本。

对于VGG模型,通常使用ImageNet数据集进行训练和验证。在训练阶段,

使用训练集进行模型训练,使用验证集进行模型调参。在测试阶段,使用测试

集对模型进行评估。如图4-3所示。

图4-3训练集、验证集和测试集的划分代码

13

湖南商务职业技术学院毕业设计

5模型构建及评估分析

5.1模型构建

为比较不同神经网络对花卉数据识别率的影响,本篇使用了深度卷积网络

框架VGG模型进行花卉数据识别。本次主要采用了VGG网络结构中应用最为

广泛的VGG16和VGG19。VGG16的输入为224×224的RGB图像,输出为1000

个类别的条件概率,具体结构如下:

第一模块为两个3×3的卷积层,输出深度为64,之后是一个最大池化层。

第二模块为两个3×3的卷积层,输出深度为128,紧跟着一个最大池化层。第三

模块为两个3×3的卷积层,输出深度为256和一个1×1的卷积层,之后是最大

池化层。第四模块为两个3×3的卷积层,输出深度为512和一个1×1的卷积层,

紧跟着为最大池化层。第五模块为两个3×3的卷积层,输出深度为512和一个

1×1的卷积层,紧跟着为最大池化层和三个全连接层,神经元数量分别为4093、

4096和1000,最后还添加了Softmax层进行分类,提高模型的分类能力。如图5-1

所示:

图5-1模型构建代码图

5.1.1模型网络结构

VGG模型是一种常用的卷积神经网络模型,它的核心思想是通过使用多个

小尺寸的卷积核和池化层来构建深度网络。输入层:该层接收输入图像,并将

其传递给下一层。卷积层:该层使用多个卷积核对输入图像进行卷积操作,并

生成多个卷积特征图。每个卷积核的大小为3x3,步长为1,填充为1,激活函

数为ReLU。池化层:该层对卷积特征图进行下操作,以减小特征图的尺寸

14

湖南商务职业技术学院毕业设计

每个池化层的大小为2x2,步长为2。卷积层:该层与第2层类似,但使用更多

的卷积核。池化层:该层与第3层类似。卷积层:该层与第2层类似,但使用

更多的卷积核,池化层:该层与第3层类似。卷积层:该层与第2层类似,但

使用更多的卷积核。池化层:该层与第3层类似。卷积层:该层与第2层类似,

但使用更多的卷积核。池化层:该层与第3层类似。全连接层:该层将所有的

卷积特征图展平,并将其传递给一个具有4096个神经元的全连接层。激活函数

为ReLU。Dropout层:该层随机地将一些神经元的输出设置为0,以减少过拟

合。全连接层:该层与第12层类似,但具有更少的神经元。Dropout层:该层

与第13层类似。输出层:该层将最终的输出传递给softmax函数,以进行分类。

如图5-2所示。

图5-2模型网络结构图

5.2模型编译

5.2.1优化器设置

SGD(StochasticGradientDescent)或Adam(AdaptiveMomentEstimation)是

通常使用的优化器。

SGD是一种基本的优化器,它在每一次迭代中沿着梯度的方向更新模型参

数。SGD优化器需要设置学习率,学习率决定了每次迭代的步长大小。通常初

始学习率为0.01,随着迭代次数增加,可以动态地将学习率减小,以增加训练

的稳定性。

15

湖南商务职业技术学院毕业设计

Adam是一种自适应的优化器,它结合了SGD和Momentum的优点,并且

针对学习率自适应地计算不同参数的权重,以实现更快的收敛和更稳定的训练。

Adam优化器的默认学习率为0.001。如图5-3所示。

图5-3模型优化器设置

5.2.2损失函数设置

基于VGG模型的花卉分类方法通常使用的损失函数是交叉熵损失函数

(CrossEntropyLoss)。

交叉熵损失函数衡量了模型预测与实际标签之间的差距,并将预测错误的

样本的误差放大。在花卉分类中,交叉熵损失函数有助于让模型更好地区分不

同种类的花朵。在训练过程中,我们通过优化器来最小化交叉熵损失函数,以

使模型的预测结果更加接近真实标签。

需要注意的是,如果我们使用的是softmax层作为分类器,那么交叉熵损失

函数就可以直接套用。如果我们使用的是sigmoid层作为分类器,那么可以使用

二元交叉熵损失函数。如图5-4所示。

图5-4损失函数设置

5.3模型训练与调优

5.3.1模型训练设置

在基于VGG模型的花卉分类模型中将训练集中的样本输入到模型中,计算

损失值,然后反向传播求梯度,再根据梯度更新模型参数。训练过程中还需要

对模型在验证集上的性能进行监测,以避免过拟合。训练的目的是通过不断调

整模型参数来提高模型的分类准确率,代码如图5-5所示:

16

湖南商务职业技术学院毕业设计

图5-5模型训练代码图

在cmd终端中运行train.py进行训练,图5-6是训练过程中的结果截图。

图5-6训练过程中的结果截图

5.3.2学习率调优

VGG模型是一种深度卷积神经网络,它的结构相对简单,但在很多计算机

视觉任务上表现出色。对于VGG模型的学习率调优,需要考虑以下几点初始学

习率:初始学习率的选择很重要,通常建议将初始学习率设置为较小的值,例

如0.001或0.0001,然后再根据实验结果进行调整。学习率衰减:在训练过程中,

可以使用学习率衰减技术来逐渐降低学习率常用的学习率衰减方式有余弦退火、

多项式退火等方法。批次大小:批次大小也会影响学习率的调优效果。通常情

况下,批次大小越大,学习率应该越小,以避免梯度爆炸或梯度消失的问题。

如图5-7所示。

图5-7学习率调优代码

17

湖南商务职业技术学院毕业设计

5.3.3batch_size设置

batch-size中文翻译是批量大小,所谓的批量是指学习样本的数量,因为在

训练模型时需要将样本图像全部读入到内存中,这么做的原因是提升收敛速度。

如图5-8所示。

图5-8batch_size设置

5.3.4保留训练权重

初始化权重,利用for循环,对卷积和池化层分别进行权重初始化,并对偏置

量bias置0,使用VGG网络训练cifar-10,保留训练过程权重。如图5-9所示:

图5-9VGG网络保留训练权重

5.4模型部署

基于VGG模型的花卉分类系统包括两部分:前端和后端。前端是用户交互

界面,后端是处理花卉分类任务的系统。在这里,我们将介绍如何部署基于VGG

模型的花卉分类系统的后端。我们假设您已经训练好了VGG模型,并且要使用

Python和Django框架来部署后端。

5.4.1系统前端设置

以下是基于VGG模型花卉分类方法的系统前端设置的一些步骤:

1.界面设计:根据应用场景和用户习惯等因素,设计出符合使用体验的前

端界面。可以考虑采用简洁、美观、易用的UI设计风格。

2.输入方式:考虑用户输入分类图片的方式,可以采用上传图片和拍照两

18

湖南商务职业技术学院毕业设计

种方式。上传图片可以采用拖拽上传或者选择文件的方式,拍照可以采用调用

摄像头的方式。

3.图片处理:采用相关的JS库或框架对上传或拍摄的图片进行处理和预处

理,比如调整图片大小和质量、裁剪、旋转等操作,以便于提高模型的准确率。

4.等待动画:为了提高用户体验,可以在模型执行分类任务时,添加等待

动画,提示用户正在处理。

5.分类结果:当模型预测完成后,将用户上传或拍摄的图片在前端页面上

显示,并显示相应的分类结果,如花卉名称和相应的概率。可以通过动态效果,

比如颜色和形状变化,来吸引用户的注意力。

6.错误提示:为了提高使用体验,需要在模型预测出错或上传的图片不能

被正确处理时,给出相应的错误提示,帮助用户更好地理解问题和寻找解决方

案。

使用方法:

步骤一:登录用户,输入密码。

步骤二:随机从文件夹选取一张花卉图片。

步骤三:等待识别结果,查看预测值,识别完成,如图5-10示:

图5-10系统前端设计图

5.4.2系统效果展示及分析

在深度学习的二分类算法中,通常采用准确率Acc(Accuracy)、精确率

Pre(Precision)、召回率Re(Recall)和F1(F1-Score)对分类模型预测效果进行评估,

各个指标的具体描述如公式(5-1)-(5-4)所示。

(式5-1)

19

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论