基于深度学习模型的花卉图像分类代码_实战 | 基于深度学习模型VGG的图像识别(附代码)...-程序员宅基地

技术标签: 基于深度学习模型的花卉图像分类代码  

本文演示了如何使用百度公司的PaddlePaddle实现基于深度学习模型VGG的图像识别。

准备工作

VGG简介

牛津大学VGG(Visual Geometry Group)组在2014年ILSVRC提出的模型被称作VGG模型 。该模型相比以往模型进一步加宽和加深了网络结构,它的核心是五组卷积操作,每两组之间做Max-Pooling空间降维。同一组内采用多次连续的3X3卷积,卷积核的数目由较浅组的64增多到最深组的512,同一组内的卷积核数目是一样的。卷积之后接两层全连接层,之后是分类层。由于每组内卷积层的不同,有11、13、16、19层这几种模型,下图展示一个16层的网络结构。VGG模型结构相对简洁,提出之后也有很多文章基于此模型进行研究,如在ImageNet上首次公开超过人眼识别的模型就是借鉴VGG模型的结构。

数据准备

通用图像分类公开的标准数据集常用的有CIFAR、ImageNet、COCO等,常用的细粒度图像分类数据集包括CUB-200-2011、Stanford Dog、Oxford-flowers等。其中ImageNet数据集规模相对较大,如模型概览一章所讲,大量研究成果基于ImageNet。ImageNet数据从2010年来稍有变化,常用的是ImageNet-2012数据集,该数据集包含1000个类别:训练集包含1,281,167张图片,每个类别数据732至1300张不等,验证集包含50,000张图片,平均每个类别50张图片。

由于ImageNet数据集较大,下载和训练较慢,为了方便大家学习,我们使用CIFAR10数据集。CIFAR10数据集包含60,000张32x32的彩色图片,10个类别,每个类包含6,000张。其中50,000张图片作为训练集,10000张作为测试集。图11从每个类别中随机抽取了10张图片,展示了所有的类别。

Paddle API提供了自动加载cifar数据集模块 paddle.dataset.cifar。

代码实现思路

通过输入python train.py,就可以开始训练模型了,主要包括三个函数:def vgg_bn_drop(input_data):

def event_handler(event):

def train():

第一步:vgg_bn_drop

首先介绍VGG模型结构,由于CIFAR10图片大小和数量相比ImageNet数据小很多,因此这里的模型针对CIFAR10数据做了一定的适配。卷积部分引入了BN和Dropout操作。

函数完整代码

VGG核心模块的输入是数据层,vgg_bn_drop 定义了16层VGG结构,每层卷积后面引入BN层和Dropout层,详细的定义如下:

def vgg_bn_drop(input):

def conv_block(ipt, num_filter, groups, dropouts, num_channels=None):

return paddle.networks.img_conv_group(

input=ipt,

num_channels=num_channels,

pool_size=2,

pool_stride=2,

conv_num_filter=[num_filter] * groups,

conv_filter_size=3,

conv_act=paddle.activation.Relu(),

conv_with_batchnorm=True,

conv_batchnorm_drop_rate=dropouts,

pool_type=paddle.pooling.Max())

conv1 = conv_block(input, 64, 2, [0.3, 0], 3)

conv2 = conv_block(conv1, 128, 2, [0.4, 0])

conv3 = conv_block(conv2, 256, 3, [0.4, 0.4, 0])

conv4 = conv_blo

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39608116/article/details/111906797

智能推荐

Spring Cloud入门教程-使用Spring Cloud Bus 刷新配置-程序员宅基地

文章浏览阅读559次,点赞7次,收藏16次。这份文档从构建一个键值数据库的关键架构入手,不仅带你建立起全局观,还帮你迅速抓住核心主线。除此之外,还会具体讲解数据结构、线程模型、网络框架、持久化、主从同步和切片集群等,帮你搞懂底层原理。相信这对于所有层次的Redis使用者都是一份非常完美的教程了。你的支持,我的动力;祝各位前程似锦,offer不断!!!《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!链图片转存中…(img-QZ9qSD8a-1713394629272)]你的支持,我的动力;

Java基础-构造函数_java构造函数-程序员宅基地

文章浏览阅读1.3w次,点赞19次,收藏87次。java基础-构造函数_java构造函数

【C++】洛谷P3382 【模板】三分法_c++ 整数域三分-程序员宅基地

文章浏览阅读193次。如题,给出一个N次函数,保证在范围[l,r]内存在一点x,使得[l,x]上单调增,[x,r]上单调减。试求出x的值。_c++ 整数域三分

入门指南【ML-Agents 官方文档翻译(ML-Agent 1.9.1,Unity 2018-2020)】_拖动3d球模型位于assets/ml-agents/examples/3dball/tfmodels-程序员宅基地

文章浏览阅读4.8k次。Getting Started Guide本指南将讲解在 Unity 中打开其中一个示例工程 ,训练一个Agent,并将训练过的模型嵌入到 Unity 环境中的完整过程。阅读本教程之后,您应该能够训练任何示例环境。如果你不熟悉的 Unity Engine,查看我们的 Background: Unity 章节。此外,如果你不熟悉机器学习,请查看我们的 Background: Machine Learning 页面,以了解简要概述和有用的建议。我们将使用 3D Balance Ball 环境,它包含_拖动3d球模型位于assets/ml-agents/examples/3dball/tfmodels进入model下的财产be

4D毫米波雷达 ti awr2243 天线通道校准方法-程序员宅基地

文章浏览阅读2.8k次,点赞6次,收藏24次。通道之间校准是因为一个主设备和三个从设备之间的频率、相位、振幅不匹配。然后进行距离维度FFT,根据物体大致距离和距离分辨率,得到所在距离维度尖峰所在频点index及其复数值(复数数据),组成12*16的复数矩阵。每一块板子都要生成一个校准矩阵,将雷达原始数据相乘之后,在进行其它功能的开发。ti awr2243使用的是4片级联方案,4个三发四收雷达板,总共12个发射天线16个接收天线,192个虚拟通道。为补偿用的调频斜率;为参考虚拟通道的尖峰索引的复数值;为别的虚拟通道的尖峰索引的复数值;_awr2243

国家税务总局全国增值税发票查验平台网站js逆向分析及全逆向算法还原_“http://inv—veri.chinatax.gov.cn/”-程序员宅基地

文章浏览阅读2.1w次,点赞2次,收藏22次。本文教程针对的事2021年7月2日时国税查验平台的js分析,其中版本号为V2.0.06_009。主要分析内容为key9和flwq39以及fplx这3个参数的算法,其中key9分为获取验证码阶段和查验阶段,算法有所区别,flwq39同理。教程开始:一、官方网址https://inv-veri.chinatax.gov.cn/index.html二、请求分析国税查验平台请求共分为2个,第一个请求获取验证码,第二个请求为输入验证码后查验数据并返回发票详细信息。第一步:安装证书基础:谷歌_“http://inv—veri.chinatax.gov.cn/”

随便推点

基于python小说推荐系统 协同过滤推荐算法 双推荐算法 Django框架 毕业设计-程序员宅基地

文章浏览阅读100次。基于python小说推荐系统 协同过滤推荐算法 双推荐算法 Django框架 毕业设计大数据分析毕设之基于python+Django的小说推荐系统大数据大屏数据可视化分析+协同过滤推荐系统-大数据分析毕设之基于python+Django的小说推荐系统大数据大屏数据可视化分析+协同过滤推荐系统-大数据分析毕设之基于python+Django的小说推荐系统大数据大屏数据可视化分析+协同过滤推荐系统-大数据分析毕设之基于python+Django的小说推荐系统大数据大屏数据可视化分析+协同过滤推荐系统-

5、循环神经网络(RNN )-程序员宅基地

文章浏览阅读1.4k次。最基本的单层网络,输入是x,经过变换Wx+b和激活函数f得到输出y。_循环神经网络

ubuntu18.04安装opencv3.4.3过程记录【附截图】_[modules\imgcodecs\cmakefiles\opencv_imgcodecs.dir-程序员宅基地

文章浏览阅读719次。安装ubuntu18.04+opencv3.4.3+OpenCV_contribOpenCV3.0以上的版本,把一些不稳定的函数放到了第三方库OpenCV_contrib中,为了应用这些功能,我们需要通过CMake把OpenCV_contrib中的功能重新加入到OpenCV中。https://github.com/opencv/opencv_contrib/blob/master/README.md安装依赖的软件包打开终端,安装以下软件包sudo apt install build-essent_[modules\imgcodecs\cmakefiles\opencv_imgcodecs.dir\build.make:431: bin/libop

chatgpt赋能python:Python快捷键大全_python上一段代码快捷键-程序员宅基地

文章浏览阅读375次。本文由chatgpt生成,文章没有在chatgpt生成的基础上进行任何的修改。以上只是chatgpt能力的冰山一角。作为通用的Aigc大模型,只是展现它原本的实力。对于颠覆工作方式的ChatGPT,应该选择拥抱而不是抗拒,未来属于“会用”AI的人。AI职场汇报智能办公文案写作效率提升教程 专注于AI+职场+办公方向。下图是课程的整体大纲下图是AI职场汇报智能办公文案写作效率提升教程中用到的ai工具。_python上一段代码快捷键

java中jquery怎么写_Jquery就是这么简单-程序员宅基地

文章浏览阅读759次。什么是Jquery?Jquey就是一款跨主流浏览器的JavaScript库,简化JavaScript对HTML操作就是封装了JavaScript,能够简化我们写代码的一个JavaScript库为什么要使用Jquery?我觉得非常重要的理由就是:它能够兼容市面上主流的浏览器,我们学习AJAX就知道了,IE和FireFox获取异步对象的方式是不一样的,而Jquery能够屏蔽掉这些不兼容的东西...(1..._java中实现jquery写法

蚂蚁区块链BaaS平台应用开发指南(四):JavaSDK的接入-程序员宅基地

文章浏览阅读2.5k次。在尝试本节的样例代码前,需要保证目标智能合约已经按照蚂蚁区块链BaaS平台应用开发指南(三):从一个简单合约开始中的做法编译部署成功。基于JavaSDK的接入在上一节里,我们通过Cloud IDE部署了一个最简单的智能合约,并且通过Cloud IDE成功的调用了合约的方法。拿传统应用的开发来类比,这就像在数据库上增加了一个存储过程,然后通过外部应用来触发这个存储过程的执行。那么,对于区块链..._com/alipay/mychain/sdk/api/env/issloption

推荐文章

热门文章

相关标签