IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 在digit recognizer中使用CNN -> 正文阅读

[人工智能]在digit recognizer中使用CNN

CNN for this Question

http://t.csdn.cn/krfpj
更多信息参考keras官网

主页 - Keras 中文文档

CNN for this Question:

1.介绍

5层Sequential网络(Functional、Model Subclassing),使用tensorflow.keras构建。

2.数据预处理

1)查看数据可知训练数据和测试数据的数据模式;

train.csv:[label, pixelx[x 0:783]], x = i * 28 + j,说明pixelx是第i行第j列的像素,整个图像为28*28像素大小。

test.csv: [pixelx[x 0:783]], 同上,只是缺少了label列。

2)数据异常值检查处理和标准化

空值、异常值检测处理。

data.isnull().any().describe()

本实例中,若有空值或者异常值,可填充为0,但是实验提供的数据没有空数据。

标准化:将数据从0255标准化至0.01.0,可以减少色彩差别引起的影响,同时加快卷积网络的拟合

3)数据塑性

目前的像素数据为7841的一维数据,可reshape为28281的二维数据,大小为2828,通道数为1(MNIST因为是灰度图像,只有一个通道,若为RGB则每个像素信息需要3通道)。

将label信息转换为独热编码(eg:1→[0,1,0,0,0,0,0,0,0,0]; 2→[0,0,1,0,0,0,0,0,0,0])to_categorical()

将训练数据随机分为十份,其中一份作为验证集,其余九份作为训练集。train_test_split()

3.构建CNN

1)使用卷积神经网络,网络结构为Input→[[Conv2D →relu]*2 →MaxPool2D →Dropout]*2 →Flatten →Dense →Dropout →Out.

在这里插入图片描述

【为什么这样设计网络结构】

深度学习项目_3 网络模型的构建( tensorflow)

2)优化器

可选用传统梯度优化:BGD、SGD、MBGD

动量momentum

AdaGrad算法

RMSprop算法

Adam算法

各个算法的介绍:

优化器(Optimizer)(SGD、Momentum、AdaGrad、RMSProp、Adam)_CityD的博客-CSDN博客_优化器

3)回调函数

本实例中我使用ReduceLROnPlateau(自适应调整学习率)

ReduceLROnPlateau是基于验证集误差测量实现动态学习率缩减,当发现loss不再降低或者acc不再提高之后,降低学习率。

torch**.**optim**.**lr_scheduler**.**ReduceLROnPlateau(optimizer,mode**=**'min',factor,patience**=**10, verbose**=**False,threshold**=**0.0001,threshold_mode**=**'rel',cooldown**=**0,min_lr**=**0,eps**=**1e-08)

  • optimizer:表示网络优化器。
  • mode(str):有两种模式分别为’min’和’max’。min表示当loss不再下降的时候,学习率将减小;max表示当loss不再上升的时候,学习率将减小。默认值为’min’。
  • factor:表示学习率每次降低多少,new_lr=old_lr*factor。
  • patience=10,容忍网路的性能不提升的次数,高于这个次数就降低学习率。
  • verbose(bool)-如果为True,则为每次更新向stdout输出一条消息。默认值:False。
  • threshold(float)-测量新最佳值的阈值,仅关注重大变化。默认值:1e-4。
  • cooldown:减少lr后恢复正常操作之前要等待的时期数。 默认值:0。
  • min_lr:学习率的下限。
  • eps:适用于lr的最小衰减。如果新旧lr之间的差异小于eps,则忽略更新。默认值:1e-8。

更多keras的回调函数:

机器学习笔记 - Keras中的回调函数Callback使用教程_坐望云起的博客-CSDN博客_keras 回调函数

4)数据增强

为了避免过度拟合问题,我们需要人工扩展手写数字数据集。我们可以使您现有的数据集更大。这个想法是通过小的转换来改变训练数据,以再现当有人在写数字时发生的变化。
例如,数字不居中比例不相同(一些人用大/小数字书写)图像旋转。。。
以改变阵列表示的方式改变训练数据,同时保持标签不变的方法称为数据增强技术。人们使用的一些常用增强功能有灰度、水平翻转、垂直翻转、随机裁剪、颜色抖动、平移、旋转等等。
通过对我们的训练数据应用这些转换,我们可以轻松地将训练示例的数量增加一倍或三倍,并创建一个非常健壮的模型。

使用ImageDataGenerator

5)训练模型(fit)

训练过程中可以看出优化器会影响最终的结果精度,epoch的大小会影响学习的速度和快慢
在这里插入图片描述
在这里插入图片描述


4.评估模型

数据曲线:

1》CNN, RMSprop, epoch=30

在这里插入图片描述

2》CNN, SGD, epoch=30

5.预测结果
在这里插入图片描述

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-07-17 16:23:46  更:2022-07-17 16:27:13 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 0:36:58-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码