1、数据集说明

从给的Sort_1000pics数据集中了解到,该数据集中包括10类图片,对图片进行查看了解到,0-99对应与人(people);100-199对应与沙滩(beaches);200-299对应与建筑(buildings);300-399对应与大卡车(trucks);400-499对应与恐龙(dinosaurs);500-599对应与大象(elephants);600-699对应与花朵(flowers);700-799对应与马(horses);800-899对应与山峰(mountains);900-999对应与食品(food)。

2 算法介绍

数据预处理:将数据集按照类别进行分组处理,分别对应的目录为0-9,读取图片,保存数据集;

将数据集和标签按照相同的种子进行打乱处理,然后按照标签的比例进行分割数据集,80%作为训练集(训练集中的10%作为验证集,查看是否过拟合),20%作为测试集。

构建CNN模型,这里是基于TensorFlow2.0进行搭建的,具体代码如图所示:

结构视图如下图所示:

其中包括输入层(32*32的图像,3通道),两个卷积层,1个池化层,重复一次,展平经过全连接层,最后输出层,除了输出层的激活函数是softmax,其他的都是relu。

模型训练,将处理后数据经过模型训练

模型预测,将处理后的测试集数据经过模型进行预测,分别输出模型对于测试集的召回率,精确率和F1测度。

根据预测结果和实际结果构建混淆矩阵。

3、结果分析

(1)召回率、准确率与F1测度

对于二分类问题中,可将样例根据其真实类别和分类器预测类别划分为:

  1. 真正例(True Positive,TP):真实类别为正例,预测类别为正例。
  2. 假正例(False Positive,FP):真实类别为负例,预测类别为正例。
  3. 假负例(False Negative,FN):真实类别为正例,预测类别为负例。
  4. 真负例(True Negative,TN):真实类别为负例,预测类别为负例。

然后可以构建混淆矩阵如下表所示:

准确率的计算公式为(Precision,P):表示在所有样本中预测正确的概率

P=TPTP+FP

召回率的计算公式为(Recall,R):表示在所有正例中预测为正例的概率

R=TPTP+FN

F1测度的计算公式为:

F1=2*P*RP+R

对于本实例中的多分类问题,也可以建立混淆矩阵,比如真实是人的正例中,实际预测为人的为TP,其余预测结果都为FN

(2)实验结果:

模型结构图

CNN模型分类预测指标图

(3)结果分析

从CNN模型的召回率、精确率和F1测度可以看出该模型相较于bytes等模型,有稍微的提升。从海滩的预测中我们可以发现它的正确率较低,经常被误认为山脉,这是由于海滩的图片中经常有大山的出现,同样也经常会被预测为人。这是由于抽取的特征向量对该图像不够抽象或泛化。

从混淆矩阵我们发现对于卡车、恐龙与大象等特征明显的图片时,它的预测效果就优于其他种类。

同时我们也发现如果训练参数过多或者训练次数过多,容易导致模型过拟合,这是由于数据集的数据有限,学习的特征过多。所以这里我使用了验证集进行查看是否数据过拟合(在训练集上的效果好,验证集上的效果差)

Sort_1000pics数据集利用CNN实现图像分类相关推荐

  1. 深度学习-07(图像分类、常用数据集、利用CNN实现图像分类、图像分类优化)

    文章目录 深度学习-07(PaddlePaddle图像分类) 图像分类概述 概述 什么是图像分类 图像分类粒度 图像分类发展历程 图像分类问题的挑战 常用数据集介绍 MNIST数据集 CIFAR10数 ...

  2. 利用Sort_1000pics数据集实现图像分类

    1.数据集说明 从给的Sort_1000pics数据集中了解到,该数据集中包括10类图片,对图片进行查看了解到,0-99对应与人(people):100-199对应与沙滩(beaches):200-2 ...

  3. 基于Tensorflow + Opencv 实现CNN自定义图像分类

    摘要:本篇文章主要通过Tensorflow+Opencv实现CNN自定义图像分类案例,它能解决我们现实论文或实践中的图像分类问题,并与机器学习的图像分类算法进行对比实验. 本文分享自华为云社区< ...

  4. 用 Kaggle 经典案例教你用 CNN 做图像分类!

    我们来看一个 Kaggle 上比较经典的一个图像分类的比赛 CIFAR( CIFAR-10 - Object Recognition in Images ),这个比赛现在已经关闭了,但不妨碍我们来去通 ...

  5. 文章学习(一)方法类:利用CNN从专利图像导出设计特征向量

    Deriving Design Feature Vectors for Patent Images Using Convolutional Neural Networks(Journal of Mec ...

  6. 利用CNN进行手写数字识别

    资源下载地址:https://download.csdn.net/download/sheziqiong/85884967 资源下载地址:https://download.csdn.net/downl ...

  7. CV:基于Keras利用CNN主流架构之mini_XCEPTION训练性别分类模型hdf5并保存到指定文件夹下

    CV:基于Keras利用CNN主流架构之mini_XCEPTION训练性别分类模型hdf5并保存到指定文件夹下 目录 图示过程 核心代码 图示过程 核心代码 from keras.callbacks ...

  8. CV:基于Keras利用CNN主流架构之mini_XCEPTION训练情感分类模型hdf5并保存到指定文件夹下

    CV:基于Keras利用CNN主流架构之mini_XCEPTION训练情感分类模型hdf5并保存到指定文件夹下 目录 图示过程 核心代码 图示过程 核心代码 def mini_XCEPTION(inp ...

  9. 基于tensorflow2.0利用CNN与线性回归两种方法实现手写数字识别

    CNN实现手写数字识别 导入模块和数据集 import os import tensorflow as tf from tensorflow import keras from tensorflow. ...

最新文章

  1. “35 岁才是一个程序员成熟的开始!”
  2. bash魔法堂:History用法详解
  3. 2017年6月21号课堂笔记
  4. CDH 的Cloudera Manager免费与收费版的对比表
  5. android广播面试题,Android相关面试题
  6. 远程仓库---从远程库克隆
  7. 简明易懂的c#入门指南_统计假设检验的简明指南
  8. 回溯法 -数据结构与算法
  9. iOS 数据持久化 NSUserDefault
  10. lable里的字体颜色_?APP界面的字体规范!
  11. java中求1 2 =3,1. java dom编程艺术---杨涛、王建桥 -第3章 DOM(自总)
  12. PMP考试教材有哪些?
  13. 分享超实用的web网页开发框架
  14. matlab中abs函数,Abs函数
  15. 使用tftp服务把路由器的配置上传到服务器
  16. 如鹏网.Net高级技术9.XML文件操作
  17. Oracle analytics server(OAS) 支持 mysql 社区版配置
  18. LR下载文件脚本实例
  19. SAP JCo应用方案
  20. 基于强化学习的自我完善聊天机器人

热门文章

  1. Qemu gdb 调试 Liteos realview-pbx-a9 工程
  2. “内存不能为read/written”是什么原理?
  3. 暗影骑士vn7安装linux,宏碁暗影骑士一代(VN7-591G)拆机清灰教程
  4. 我们公司的短信接口被刷了,瞬间损失两万,怎么解决?(短信接口被盗刷系列1)
  5. ECB oracle——attack
  6. teamviewer连接不上的原因及解决方法有哪些
  7. vue-element-admin 快捷标签导航(三)
  8. 在刀尖跳舞的喜马拉雅
  9. XML第四讲:DTD元素、属性深度详解
  10. CCF认证201403-1相反数