超干货|使用Keras和CNN构建分类器(内含代码和讲解)

摘要: 为了让文章不那么枯燥,我构建了一个精灵图鉴数据集(Pokedex)这都是一些受欢迎的精灵图。我们在已经准备好的图像数据集上,使用Keras库训练一个卷积神经网络(CNN)。


为了让文章不那么枯燥,我构建了一个精灵图鉴数据集(Pokedex)这都是一些受欢迎的精灵图。我们在已经准备好的图像数据集上,使用Keras库训练一个卷积神经网络(CNN)。


深度学习数据集



上图是来自我们的精灵图鉴深度学习数据集中的合成图样本。我的目标是使用Keras库和深度学习训练一个CNN,对Pokedex数据集中的图像进行识别和分类。Pokedex数据集包括:Bulbasaur (234 images)Charmander (238 images)Squirtle (223 images)Pikachu (234 images)Mewtwo (239 images)


训练图像包括以下组合:电视或电影的静态帧;交易卡;行动人物;玩具和小玩意儿;图纸和粉丝的艺术效果图。

在这种多样化的训练图像的情况下,实验结果证明,CNN模型的分类准确度高达97


CNNKeras库的项目结构

该项目分为几个部分,目录结构如下:



如上图所示,共分为3个目录:

1.数据集:包含五个类,每个类都是一个子目录。

2.示例:包含用于测试卷积神经网络的图像。

3.pyimagesearch模块:包含我们的SmallerVGGNet模型类。


另外,根目录下有5个文件:

1.plot.png:训练脚本运行后,生成的训练/测试准确性和损耗图。

2.lb.pickleLabelBinarizer序列化文件,在类名称查找机制中包含类索引。

3.pokedex.model:序列化Keras CNN模型文件(即权重文件)。

4.train.py:训练Keras CNN,绘制准确性/损耗函数,然后将卷积神经网络和类标签二进制文件序列化到磁盘。

5.classify.py:测试脚本。


KerasCNN架构


我们今天使用的CNN架构,是由SimonyanZisserman2014年的论文用于大规模图像识别的强深度卷积网络中介绍的VGGNet网络的简单版本,结构图如上图所示。该网络架构的特点是:

1.只使用3*3的卷积层堆叠在一起来增加深度。

2.使用最大池化来减小数组大小。

3.网络末端全连接层在softmax分类器之前。


假设你已经在系统上安装并配置了Keras。如果没有,请参照以下连接了解开发环境的配置教程:

1.配置Ubuntu,使用Python进行深度学习。

2.设置Ubuntu 16.04 + CUDA + GPU,使用Python进行深度学习。

3.配置macOS,使用Python进行深度学习。


评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值