DL之AlexNet:利用卷积神经网络类AlexNet实现猫狗分类识别(图片数据增强→保存h5模型)

目录

利用卷积神经网络类AlexNet实现猫狗分类识别(图片数据增强→保存h5模型)

设计思路

处理过程及结果呈现

基于ImageDataGenerator实现数据增强

类AlexNet代码


相关文章
DL之AlexNet:利用卷积神经网络类AlexNet实现猫狗分类识别(图片数据增强→保存h5模型)
DL之AlexNet:利用卷积神经网络类AlexNet实现猫狗分类识别(图片数据增强→保存h5模型)实现

利用卷积神经网络类AlexNet实现猫狗分类识别(图片数据增强→保存h5模型)

设计思路

处理过程及结果呈现

Found 17500 images belonging to 2 classes.
Found 7500 images belonging to 2 classes.

_________________________________________________________________
Layer (type)                 Output Shape              Param #
=================================================================
input_1 (InputLayer)         (None, 150, 150, 3)       0
_________________________________________________________________
conv2d_1 (Conv2D)            (None, 148, 148, 64)      1792
_________________________________________________________________
batch_normalization_1 (Batch (None, 148, 148, 64)      256
_________________________________________________________________
activation_1 (Activation)    (None, 148, 148, 64)      0
_________________________________________________________________
max_pooling2d_1 (MaxPooling2 (None, 74, 74, 64)        0
_________________________________________________________________
conv2d_2 (Conv2D)            (None, 72, 72, 64)        36928
_________________________________________________________________
batch_normalization_2 (Batch (None, 72, 72, 64)        256
_________________________________________________________________
activation_2 (Activation)    (None, 72, 72, 64)        0
_________________________________________________________________
max_pooling2d_2 (MaxPooling2 (None, 36, 36, 64)        0
_________________________________________________________________
conv2d_3 (Conv2D)            (None, 34, 34, 128)       73856
_________________________________________________________________
batch_normalization_3 (Batch (None, 34, 34, 128)       512
_________________________________________________________________
activation_3 (Activation)    (None, 34, 34, 128)       0
_________________________________________________________________
max_pooling2d_3 (MaxPooling2 (None, 17, 17, 128)       0
_________________________________________________________________
conv2d_4 (Conv2D)            (None, 15, 15, 128)       147584
_________________________________________________________________
batch_normalization_4 (Batch (None, 15, 15, 128)       512
_________________________________________________________________
activation_4 (Activation)    (None, 15, 15, 128)       0
_________________________________________________________________
max_pooling2d_4 (MaxPooling2 (None, 7, 7, 128)         0
_________________________________________________________________
flatten_1 (Flatten)          (None, 6272)              0
_________________________________________________________________
dense_1 (Dense)              (None, 64)                401472
_________________________________________________________________
batch_normalization_5 (Batch (None, 64)                256
_________________________________________________________________
activation_5 (Activation)    (None, 64)                0
_________________________________________________________________
dropout_1 (Dropout)          (None, 64)                0
_________________________________________________________________
dense_2 (Dense)              (None, 1)                 65
_________________________________________________________________
activation_6 (Activation)    (None, 1)                 0
=================================================================
Total params: 663,489
Trainable params: 662,593
Non-trainable params: 896
_________________________________________________________________
None
Epoch 1/10- 837s - loss: 0.8109 - binary_accuracy: 0.5731 - val_loss: 0.7552 - val_binary_accuracy: 0.6275
Epoch 2/10- 972s - loss: 0.6892 - binary_accuracy: 0.6184 - val_loss: 0.6323 - val_binary_accuracy: 0.6538
Epoch 3/10- 888s - loss: 0.6773 - binary_accuracy: 0.6275 - val_loss: 0.6702 - val_binary_accuracy: 0.6475
Epoch 4/10- 827s - loss: 0.6503 - binary_accuracy: 0.6522 - val_loss: 1.4757 - val_binary_accuracy: 0.5437
Epoch 5/10- 775s - loss: 0.6024 - binary_accuracy: 0.6749 - val_loss: 0.5872 - val_binary_accuracy: 0.6975
Epoch 6/10- 775s - loss: 0.5855 - binary_accuracy: 0.6935 - val_loss: 1.6343 - val_binary_accuracy: 0.5075
Epoch 7/10- 781s - loss: 0.5725 - binary_accuracy: 0.7117 - val_loss: 1.0417 - val_binary_accuracy: 0.5850
Epoch 8/10- 770s - loss: 0.5594 - binary_accuracy: 0.7268 - val_loss: 0.6793 - val_binary_accuracy: 0.6150
Epoch 9/10- 774s - loss: 0.5619 - binary_accuracy: 0.7239 - val_loss: 0.7271 - val_binary_accuracy: 0.5737
Epoch 10/10- 772s - loss: 0.5206 - binary_accuracy: 0.7485 - val_loss: 1.2269 - val_binary_accuracy: 0.5564
train_history.history {'val_loss': [0.7552271389961243, 0.6323019933700561, 0.6702361726760864, 1.4756725096702576, 0.5872411811351776, 1.6343200182914734, 1.0417238283157348, 0.679338448047638, 0.7270535206794739, 1.2268943945566813], 'val_binary_accuracy': [0.6275, 0.65375, 0.6475, 0.54375, 0.6975, 0.5075, 0.585, 0.615, 0.57375, 0.5564102564102564], 'loss': [0.8109277236846185, 0.6891729639422509, 0.6772915293132106, 0.6502932430275025, 0.6023876513204267, 0.5855168705025027, 0.5725259766463311, 0.5594036031153894, 0.561434359863551, 0.5205760602989504], 'binary_accuracy': [0.5730846774193549, 0.6184475806451613, 0.6275201612903226, 0.6522177419354839, 0.6748991935483871, 0.6935483870967742, 0.7116935483870968, 0.7268145161290323, 0.7242424240015974, 0.7484879032258065]}

基于ImageDataGenerator实现数据增强

扩充数据集大小,增强模型的泛化能力。比如进行旋转、变形、归一化等。

  • 扩充数据量:对图像作简单的预处理(如缩放,改变像素值范围);
    随机打乱图像顺序,并且在图像集上无限循环(不会出现数据用完的情况);
    对图像加入扰动,大大增大数据量,避免多次输入相同的训练图像产生过拟合。
  • 优化训练效率:训练神经网络时经常需要将数据分成小的批次(例如每16张图像作为一个batch提供给神经网络),在ImageDataGenerator中,只需要简单提供一个参数 batch_size = 16。

类AlexNet代码

n_channels = 3
input_shape = (*image_size, n_channels)
input_layer = Input(input_shape)
z = input_layer
z = Conv2D(64, (3, 3))(z)
z = BatchNormalization()(z)
z = Activation('relu')(z)
z = MaxPooling2D(pool_size=(2, 2))(z)z = Conv2D(64, (3, 3))(z)
z = BatchNormalization()(z)
z = Activation('relu')(z)
z = MaxPooling2D(pool_size=(2, 2))(z)z = Conv2D(128, (3, 3))(z)
z = BatchNormalization()(z)
z = Activation('relu')(z)
z = MaxPooling2D(pool_size=(2, 2))(z)z = Conv2D(128, (3, 3))(z)
z = BatchNormalization()(z)
z = Activation('relu')(z)
z = MaxPooling2D(pool_size=(2, 2))(z)z = Flatten()(z) # 将特征变成一维向量
z = Dense(64)(z)
z = BatchNormalization()(z)
z = Activation('relu')(z)
z = Dropout(0.5)(z)
z = Dense(1)(z)
z = Activation('sigmoid')(z)

DL之AlexNet:利用卷积神经网络类AlexNet实现猫狗分类识别(图片数据增强→保存h5模型)相关推荐

  1. DL之VGG16:基于VGG16迁移技术实现猫狗分类识别(图片数据量调整→保存h5模型)

    DL之VGG16:基于VGG16迁移技术实现猫狗分类识别(图片数据量调整→保存h5模型) 目录 基于VGG16迁移技术实现猫狗分类识别(图片数据量调整→保存h5模型) 设计思路 输出结果 1488/1 ...

  2. 基于Keras的卷积神经网络用于猫狗分类(进行了数据增强)+卷积层可视化

    接着我上一篇博客,https://blog.csdn.net/fanzonghao/article/details/81149153. 在上一篇基础上对数据集进行数据增强.函数如下: "&q ...

  3. 基于Keras的卷积神经网络用于猫狗分类(未进行数据增强)+卷积层可视化

    首先看数据集路径: cats和dogs存放的就是各种大小的猫狗图片. 读取数据集代码: import os import matplotlib.pyplot as plt ""&q ...

  4. CV之IC之AlexNet:基于tensorflow框架采用CNN卷积神经网络算法(改进的AlexNet,训练/评估/推理)实现猫狗分类识别案例应用

    CV之IC之AlexNet:基于tensorflow框架采用CNN卷积神经网络算法(改进的AlexNet,训练/评估/推理)实现猫狗分类识别案例应用 目录 基于tensorflow框架采用CNN(改进 ...

  5. 使用卷积神经网络(普通CNN和改进型LeNet)以及数据增强和迁移学习技巧识别猫和狗,并制作成分类器软件(基于Keras)

    数据集:https://www.microsoft.com/en-us/download/confirmation.aspx?id=54765 猫和狗的图片各自有12500张. 第一步 整理数据集,查 ...

  6. 深度学习之CNN卷积神经网络详解以及猫狗识别实战

    文章目录 CNN 解决了什么问题? 需要处理的数据量太大 图像简单数字化无法保留图像特征 CNN核心思想 局部感知 参数共享 卷积神经网络-CNN 的基本原理 卷积--提取特征 池化层(下采样)--数 ...

  7. 深度学习100例-卷积神经网络(VGG-16)猫狗识别 | 第21天

    最近更新有点慢,后台收到不少小伙伴的催更,先说声抱歉哈.最近在参加一个目标检测的比赛,时间比较紧张.这段时间我也打算调整一下思路,试着将目标检测中涉及的内容拆开来,将这些拆分的内容一点点融入到在后续的 ...

  8. 基于卷积神经网络和投票机制的三维模型分类与检索 2019 论文笔记

    作者:白静 计算机辅助设计与图形学学报 1.解决的问题 由于三维模型投影得到的视图是由不同视点得到,具有相对独立性,这种像素级的融合运算并没有直接的物理或者几何意义,更有可能造成图像有益信息淹没和混淆 ...

  9. [pytorch、学习] - 5.6 深度卷积神经网络(AlexNet)

    参考 5.6 深度卷积神经网络(AlexNet) 在LeNet提出后的将近20年里,神经网络一度被其他机器学习方法超越,如支持向量机.虽然LeNet可以在早期的小数据集上取得好的成绩,但是在更大的真实 ...

最新文章

  1. python bootstrap-fileinput示例_bootstrap fileinput完整实例分享
  2. MyBatis中提示:元素类型为 mapper 的内容必须匹配 (cache-ref|cache|resultMap*|parameterMap*|sql*|insert*|update*|de
  3. php命名空间规则解析及高级功能,PHP命名空间解析规则
  4. [INS-32025] 所选安装与指定 Oracle 主目录中已安装的软件冲突
  5. 第十篇:Spring Boot整合mybatis+逆向工程(Mysql+Oracle) 入门试炼01
  6. Java类集框架 —— ArrayList源码分析
  7. 米家扫地机器人怎么加水_时隔两年半终于更新 贵了500元的小米米家扫地机器人1S值得买吗?...
  8. 史上最全 IT 类学习资源
  9. EDA课程设计-拔河游戏A设计
  10. 欧阳娜娜从阿里跳槽网易:阿里P8堪称教科书级别的面试现场!最后一个问题亮了...
  11. 计算机的内存储器的最大特点是,随机存取存储器(RAM)的最大特点是
  12. vs code 关闭右下角弹窗方法
  13. XSS靶场(haozi.me)
  14. 3dsMax---椅子
  15. win10电脑亮度调节失灵(win10电脑亮度调节失灵戴尔)
  16. 智能家居,在互联中看见全屋智能
  17. 干货分享!华为模拟器Web配置防火墙
  18. 研究Win32 GUI中SetActiveWindow与SetFocus和窗口消息
  19. 为什么现在流行resultful,webservice无人问津?
  20. itextpdf截取pdf文件为新文件

热门文章

  1. c语言随机产生100个字母,C语言实现产生100以内的随机数做加减运算
  2. java lambda 局部变量_java Lambda表达式访问局部变量详细介绍
  3. python实战经典例子_Python基础之列表常见操作经典实例详解
  4. 爬取豆瓣电影排名前250部电影并且存入Mongo数据库
  5. Linux 文件查找(find)
  6. samba安装与配置
  7. 【转】多语言的正则表达式,我们应该掌握
  8. Math,random()返回区间内的随机数
  9. 用SQL删除重复记录的N种方法
  10. Windows 7 版本知多少(Win 7 N/K/KN/E)