拓端tecdat:R语言深度学习卷积神经网络 (CNN)对 CIFAR 图像进行分类:训练与结果评估可视化
原文链接:http://tecdat.cn/?p=24386
原文出处:拓端数据部落公众号
本文演示了训练一个简单的卷积神经网络 (CNN) 来对 CIFAR 图像进行分类。由于本教程使用 Keras Sequential API,因此创建和训练我们的模型只需几行代码。
设置
library(keras)
下载并准备 CIFAR10 数据集
CIFAR10 数据集包含 10 个类别的 60,000 张彩色图像,每个类别有 6,000 张图像。数据集分为 50,000 张训练图像和 10,000 张测试图像。这些类是互斥的,它们之间没有重叠。
验证数据
为了验证数据集看起来是否正确,让我们绘制训练集中的前 25 张图像并在每张图像下方显示类别名称。
train %>% map(as.rater, max = 255) %>%
创建卷积基
下面的6行代码使用一种常见的模式定义了卷积基础:Conv2D和MaxPooling2D层的堆叠。
作为输入,CNN接受形状的张量(image_height, image_width, color_channels),忽略了批次大小。如果你是第一次接触这些维度,color_channels指的是(R,G,B)。在这个例子中,你将配置我们的CNN来处理形状为(32,32,3)的输入,这是CIFAR图像的格式。你可以通过将参数input_shape传递给我们的第一层来做到这一点。
kers_moe_etl %>% laer_c_2d(fles = 32, ene_sz = c(3,3), acan = "relu", lye_apoi_2d(posize = c(2,2)) %>% lae_cv_2d(filrs = 64, relze = c(3,3), ctitio = "reu")
到目前为止,让我们展示一下我们模型的架构。
summary(model)
在上面,你可以看到每个Conv2D和MaxPooling2D层的输出是一个三维形状的张量(高度、宽度、通道)。当你深入到网络中时,宽度和高度维度往往会缩小。每个Conv2D层的输出通道的数量由第一个参数控制(例如32或64)。通常情况下,随着宽度和高度的缩小,你可以承受(计算上)在每个Conv2D层中增加更多的输出通道。
在顶部添加密集层
为了完成我们的模型,您需要将卷积基(形状为 (3, 3, 64))的最后一个输出张量输入一个或多个 Dense 层以执行分类。密集层将向量作为输入(1D),而当前输出是 3D 张量。首先,您将 3D 输出展平(或展开)为 1D,然后在顶部添加一个或多个 Dense 层。CIFAR 有 10 个输出类,因此您使用具有 10 个输出和 softmax 激活的最终 Dense 层。
model %>% leree(unis = 64, aciaion = "relu") %>% ayedese(unis = 10, acivin = "sftax")
这是我们模型的完整架构。
注意 Keras 模型是可变对象,您不需要在上面的 chubnk 中重新分配模型。
summary(modl)
如您所见,我们的 (3, 3, 64) 输出在经过两个 Dense 层之前被展平为形状为 (576) 的向量。
编译和训练模型
moel %>% comle(optier = "adam",lss = "specatialosnopy",mecs = "accray"
)
评估模型
plot(hsy)
ealte(oel, x,y, erbe = 0)
我们简单的 CNN 已经实现了超过 70% 的测试准确率。
最受欢迎的见解
1.r语言用神经网络改进nelson-siegel模型拟合收益率曲线分析
2.r语言实现拟合神经网络预测和结果可视化
3.python用遗传算法-神经网络-模糊逻辑控制算法对乐透分析
4.用于nlp的python:使用keras的多标签文本lstm神经网络分类
5.用r语言实现神经网络预测股票实例
6.R语言基于Keras的小数据集深度学习图像分类
7.用于NLP的seq2seq模型实例用Keras实现神经机器翻译
8.python中基于网格搜索算法优化的深度学习模型分析糖
9.matlab使用贝叶斯优化的深度学习
拓端tecdat:R语言深度学习卷积神经网络 (CNN)对 CIFAR 图像进行分类:训练与结果评估可视化相关推荐
- 深度学习--卷积神经网络CNN
主要内容 1. 神经网络 1.1 感知器 1.2 Sigmoid神经元 1.3 神经网络 2. 卷积神经网络CNN 2.1 卷积神经网络结构 2.2 数据输入层 2.3 卷积层 2.3.1 局部感知( ...
- 深度学习 --- 卷积神经网络CNN(LeNet-5网络详解)
卷积神经网络(Convolutional Neural Network,CNN)是一种前馈型的神经网络,其在大型图像处理方面有出色的表现,目前已经被大范围使用到图像分类.定位等领域中.相比于其他神经网 ...
- 深度学习——卷积神经网络CNN
这两天看了不少讲卷积神经网络的文章和视频,由于我本人才疏学浅,在学习过程中基本上是一头雾水,导致的结果就是不过幸好,在快要绝望的时候,我在知乎上发现了一篇宝藏文章卷积神经网络CNN完全指南终极版这篇文 ...
- 拓端tecdat|R语言逻辑回归(Logistic回归)模型分类预测病人冠心病风险
最近我们被客户要求撰写关于冠心病风险的研究报告,包括一些图形和统计输出. 相关视频:R语言逻辑回归(Logistic回归)模型分类预测病人冠心病风险 逻辑回归Logistic模型原理和R语言分类预测冠 ...
- 一种基于深度学习(卷积神经网络CNN)的人脸识别算法-含Matlab代码
目录 一.引言 二.算法的基本思想 三.算法数学原理 3.1 权值共享 3.2 CNN结构 四.基于卷积神经网络的人脸识别算法-Matlab代码 五.Matlab源代码获取 一.引言 在工程应用中经常 ...
- 深度学习 --- 卷积神经网络CNN(LeNet-5网络学习算法详解)
上一节我们详细探讨了LeNet-5网络的架构,但是还没有解释该网络是如何进行学习的,如何更新权值的,本节将接着上一节进一步CNN的学习机制和权值更新过程,这里请大家一定要对CNN网络有一个清晰的认识, ...
- 拓端tecdat|R语言用LOESS(局部加权回归)季节趋势分解(STL)进行时间序列异常检测
最近我们被客户要求撰写关于LOESS(局部加权回归)的研究报告,包括一些图形和统计输出. 这篇文章描述了一种对涉及季节性和趋势成分的时间序列的中点进行建模的方法.我们将对一种叫做STL的算法进行研究, ...
- 拓端tecdat|R语言向量误差修正模型 (VECMs)分析长期利率和通胀率影响关系
最近我们被客户要求撰写关于向量误差修正模型的研究报告,包括一些图形和统计输出. 向量自回归模型估计的先决条件之一是被分析的时间序列是平稳的.但是,经济理论认为,经济变量之间在水平上存在着均衡关系,可以 ...
- 拓端tecdat|R语言线性回归和时间序列分析北京房价影响因素可视化案例
最近我们被客户要求撰写关于北京房价影响因素的研究报告,包括一些图形和统计输出. 目的 房价有关的数据可能反映了中国近年来的变化: 人们得到更多的资源(薪水),期望有更好的房子 人口众多 独生子女政策: ...
- 深度学习卷积神经网络CNN之 VGGNet模型主vgg16和vgg19网络模型详解说明(理论篇)
1.VGG背景 2. VGGNet模型结构 3. 特点(创新.优缺点及新知识点) 一.VGG背景 VGGNet是2014年ILSVRC(ImageNet Large Scale Visual R ...
最新文章
- java 策略模式会员_七:策略模式(不同等级会员打折算法)
- Nginx配置统计页面及访问控制(htpasswd和客户端IP)
- mpandroidchart y轴从0开始_从零开始学Pytorch(十七)之目标检测基础
- 5月23 注册审核
- mysql数据库补充知识3 查询数据库记录信息之多表查询
- Coprime Sequence
- Java线程状态的改变
- .NET-MVC站点部署到windows server2008r2服务器404错误
- MFC模态对话与非模态对话框(二)
- java监控文件内容变化_Java使用WatchService监控文件内容变化的示例
- MyBatis概述与架构
- 详解如何在数仓中管理元数据(文末彩蛋~)
- 详解百度快照劫持,小白必看篇
- 独到理解@java数据类型
- ipa 修改服务器地址,iOS重签名 – ipa包(服务器适用)
- 爬取B站弹幕制作词云图
- 金明的预算budget题解
- 山东大学计算机组成与设计实验七 节拍脉冲发生器时序电路
- 使用 Chrome DevTools 模拟缓慢的 3G 网络速度
- BearPi_HM Nano开发板环境搭建踩坑