我们的深度学习数据集包括1,191张口袋妖怪图像,(存在于口袋妖怪世界中的动物般的生物,流行的电视节目,视频游戏和交易卡系列)。
我们的目标是使用Keras和深度学习训练卷积神经网络,以识别和分类这些神奇宝贝。
我们将认识到的口袋妖怪包括:
Bulbasaur(234图像)
Charmander(238图像)
Squirtle(223图像)
皮卡丘(234图像)
Mewtwo(239图像)
项目结构
├── dataset
│ ├── bulbasaur [234 entries]
│ ├── charmander [238 entries]
│ ├── mewtwo [239 entries]
│ ├── pikachu [234 entries]
│ └── squirtle [223 entries]
├── examples [6 entries]
├── pyimagesearch
│ ├── __init__.py
│ └── smallervggnet.py
├── plot.png
├── lb.pickle
├── pokedex.model
├── classify.py
└── train.py
有3个目录:
dataset:包含五个类,每个类都有自己的子目录,使解析类标签变得容易。
示例:包含我们将用于测试CNN的图像。
pyimagesearch模块:包含我们的SmallerVGGNet模型类。
根目录中有5个文件:
plot.png:训练脚本运行后生成的训练/测试精度和损失图。
lb.pickle:我们的LabelBinarizer序列化对象文件 - 它包含类名查找mechamisn的类索引。
pokedex.model:这是我们的序列化Keras卷积神经网络模型文件(即“权重文件”)。
train.py:我们将使用此脚本训练我们的Keras CNN,绘制准确性/丢失,然后将CNN和标签二进制文件序列化到磁盘。
classify.py:我们的测试脚本。
使用的CNN架构是VGGNet网络的更小,更紧凑的变体,由Simonyan和Zisserman在他们的2014年论文“用于大规模图像识别的超深度卷积网络”中介绍。
类似VGGNet的架构的特点是:
仅使用堆叠在彼此顶部的3×3卷积层来增加深度
通过最大池化减小卷大小
在softmax分类器之前,网络末端的完全连接层
深度学习开发环境配置的例子:
- Configuring Ubuntu for deep learning with Python
- Setting up Ubuntu 16.04 + CUDA + GPU for deep learning with Python
- Configuring macOS for deep learning with Python
预配置的实例: