写在前面

本文主要参考的是飞桨上的一个模型https://aistudio.baidu.com/aistudio/projectdetail/78960?channelType=0&channel=0

这个模型里面,就是简单的三次卷积层加上全连接层,最后softmax分一下类,最后效果一般,后来在一篇博客上看到看到vgg网络对简单分类效果会比较好,就尝试更换vgg-13,没想到正确率提升了20%,当然不足也有很多,就比如为了偷懒没有多尝试几个模型实验,看情况以后会补上

1.摘要
近年来,深度学习理论和技术都得到了迅速的发展,并且受到了越来越多的研究者的关注,深度学习技术在图像识别领域具有广泛的应用。尤其是在特征提取和建模上有着非常明显的优势浅层对比模型。现在已经有了非常多的经典成熟模型,如AlexNet、VGG13、VGG16、VGG19和ResNet等,但未必适用于所有的试验数据集。本文运用卷积神经网络(CNN)依靠PaddlePaddle深度学习框架结合CIFAR10数据集训练和建立猫狗识别模型,在较成熟的VGG13模型基础实现,采用的优化方法为Adam优化方法。

2. 卷积神经网络

传统CNN包含卷积层、全连接层等组件,并采用softmax多类别分类器和多类交叉熵损失函数,一个典型的卷积神经网络如图6所示,我们先介绍用来构造CNN的常见组件。

卷积层(convolution layer): 执行卷积操作提取底层到高层的特征,发掘出图片局部关联性质和空间不变性质。

池化层(pooling layer): 执行降采样操作。通过取卷积输出特征图中局部区块的最大值(max-pooling)或者均值(avg-pooling)。降采样也是图像处理中常见的一种操作,可以过滤掉一些不重要的高频信息。

全连接层(fully-connected layer,或者fc layer): 输入层到隐藏层的神经元是全部连接的。

非线性变化: 卷积层、全连接层后面一般都会接非线性变化函数,例如Sigmoid、Tanh、ReLu等来增强网络的表达能力,在CNN里最常使用的为ReLu激活函数。

Dropout: 在模型训练阶段随机让一些隐层节点权重不工作,提高网络的泛化能力,一定程度上防止过拟合。

另外,在训练过程中由于每层参数不断更新,会导致下一次输入分布发生变化,这样导致训练过程需要精心设计超参数。如2015年Sergey Ioffe和Christian Szegedy提出了Batch Normalization (BN)算法 中,每个batch对网络中的每一层特征都做归一化,使得每层分布相对稳定。BN算法不仅起到一定的正则作用,而且弱化了一些超参数的设计。经过实验证明,BN算法加速了模型收敛过程,在后来较深的模型中被广泛使用。

3.实验及结果分析

3.1实验环境与数据集
本实验是在基于Anaconda的环境管理工具、paddle深度学习框架和Pycharm的编译器上进行设计实现的。研究环境如下所示:
(1) 软件部分
操作系统:Windows10 64位系统;开发工具:Pycharm、Anaconda;CUDA:V11.7_win10;paddle-gpu:2.3.2 ;
(2) 硬件部分
内存:16G;CPU:AMD Ryzen 7 5800H 3.20 GHz;GPU:NVIDIA GeForce GTX 1650;硬盘:固态硬盘:512G。

(3) 数据集部分

我们使用CIFAR10数据集。CIFAR10数据集包含60,000张32x32的彩色图片,10个类别,每个类包含6,000张。其中50,000张图片作为训练集,10000张作为验证集。这次我们只对其中的猫和狗两类进行预测。

3.2损失函数

本文采用的是交叉熵损失函数,该函数在分类任务上比较常用。

3.3网络模型

CNN有着多种可供选择的网络结构,其中包括有LeNet、AlexNet、VGGNet 、ResNet 等。其中VGGNet 是由牛津大学的视觉几何组和谷歌的DeepMind 公司提出,通过VGGNet,研究人员证明了基于小尺寸卷积核,增加网络深度可以有效提升模型效果。VGGNet 引入“模块化”设计思想,将不同的层进行简单组合构成网络模块,再用模块来组装完整网络,而不再以“层”为单元组装网络。VGGNet 有着多种配置方案,本文采用VGG-13,也就是B型VGG结构。

3.4实验结果

随着迭代次数增加损失逐渐减少,精确率逐渐提高

实验精确率acc最终稳定在0.83左右,较为优越

对于6张图片的识别,5张识别正确

4.总结

本文运用卷积神经网络在CIFAR10数据集的基础上,运用VGG13模型训练和建立猫狗识别模型,获得了较为优越的实验结果。

卷积神经网络实践-猫狗分类相关推荐

  1. 使用卷积神经网络实现猫狗分类任务

    一.数据集下载链接 二.基础环境配置 三.训练及测试过程   使用卷积神经网络在猫狗分类数据集上实现分类任务. 一.数据集下载链接   猫狗分类数据集链接 → 提取码:1uwy. 二.基础环境配置 W ...

  2. 【新手入门】课程6-卷积神经网络实践-猫狗分类

    图像分类是根据图像的语义信息将不同类别图像区分开来,是计算机视觉中重要的基本问题 猫狗分类属于图像分类中的粗粒度分类问题 实践总体过程和步骤如下图 首先导入必要的包 paddle.fluid---&g ...

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

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

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

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

  5. Top2:CNN 卷积神经网络实现猫狗图片识别二分类

    Top2:CNN 卷积神经网络实现猫狗图片识别二分类 系统:Windows10 Professional 环境:python=3.6 tensorflow-gpu=1.14 ```python &qu ...

  6. 用卷积神经网络实现猫狗图片分类

    该例程使用数据集来源于 kaggle cat_VS _dog 数据集中的一部分, 用卷积神经网络实现猫狗图片二分类,例程序比较简单,就不多解释了,代码中会有相应的注释,直接上代码: import nu ...

  7. 基于卷积神经网络的猫狗识别

    卷积神经网络的猫狗识别 任务需求 环境配置 识别猫狗实例 首先导入库 数据预处理: 读取数据: 定义网络: 调整机器学习率 定义训练过程 训练开始 训练结果 用于测试代码 结果 任务需求 按照 htt ...

  8. Keras深度学习使用VGG16预训练神经网络实现猫狗分类

    Keras深度学习使用VGG16预训练神经网络实现猫狗分类 最近刚刚接触深度学习不久,而Keras呢,是在众多的深度学习框架中,最适合上手的,而猫狗的图像分类呢,也算是计算机视觉中的一个经典案例,下面 ...

  9. 【实战】kaggle猫狗大战-卷积神经网络实现猫狗识别

    卷积神经网络:猫狗识别 目录 第一步:导入数据集 第二步:数据预处理 第三步:迁移学习 第四步:模型保存 第五步:模型融合 第一步:导入数据集 kaggle猫狗大战数据集地址:kaggle # 将ka ...

最新文章

  1. python自动测试p-python自动化测试_6
  2. 实例:如何设计一款好的Metro UI应用
  3. java看log技巧_Log日志框架的学习五.正确使用日志的10个技巧
  4. android cmd
  5. It's all about buffers: zero-copy, mmap and Java NIO
  6. 获取 RPM 包常用站点
  7. 【python教程入门学习】必须具备Python Django开发技能
  8. ORA-01157 无法标识锁定数据文件的解决方法
  9. TypeScript学习(一):原始数据类型的定义
  10. localstorage和sessionStorage和cookies
  11. NLP学习一 形式语言与自动机
  12. 高通QFIL刷机指南
  13. SWOT分析法 (SWOT Analysis)
  14. java6发布_Minecraft Java版 1.13-pre6 发布
  15. 黄向东:工业物联网数据库 IoTDB及其应用
  16. 【Android视频 之 阿里云视频播放器 二】
  17. 《JAVA程序性能优化》总结
  18. 华为交换机关闭网页服务器,华为交换机的端口定时关闭方法
  19. Xftp的下载和安装教程
  20. 51 单片机实战教程(14 外围芯片驱动程序之LTC1658芯片驱动)

热门文章

  1. B - 小孩报数问题
  2. 第二十二天php反序列化问题
  3. 超好理解的哈夫曼树(最优二叉树)与例题
  4. 微信小程序完整脚本源码-20180624版
  5. 使用containerd和cilium部署kubeproxy-free的k8s集群
  6. 安卓模拟器Win8版(bluestacks app player) v0.8.10.3101 官方中文版
  7. Idea Spring-boot整合shiro安全框架
  8. 以亲身经历浅谈软件实现前“凡事三问”的重要性---欢迎大家分享自己的经历和感悟!
  9. 编码GBK不可映射字符的三种解决方法
  10. zookeeper源码解析--请求处理--FinalRequestProcessor