数据分析实战 45 讲
陈旸
清华大学计算机博士
123928 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 49 讲
第二模块:数据分析算法篇 (20讲)
第四模块:数据分析工作篇 (2讲)
数据分析实战 45 讲
15
15
1.0x
00:00/00:00
登录|注册

43丨深度学习(下):如何用Keras搭建深度学习网络做手写数字识别?

网络结构
输入尺寸
网络结构
输入尺寸
Softmax分类器
连接神经元
最大池化
平均池化
降维处理
ReLU
tanh
Sigmoid函数
卷积操作原理
矩阵运算
滤镜作用
损失函数和优化器配置
全连接层
Flatten层
最大池化层
二维卷积层
创建序贯模型
数据加载
Theano
MXNet
PyTorch
Caffe
Keras
Tensorflow
AlexNet
LeNet
全连接层
池化层
激活函数
卷积层
用Keras做Mnist手写数字识别
常用的深度学习框架对比
LeNet和AlexNet网络
CNN网络
深度学习

该思维导图由 AI 生成,仅供参考

通过上节课的讲解,我们已经对神经网络和深度学习有了基本的了解。这节课我就用 Keras 这个深度学习框架做一个识别手写数字的练习。
你也许还有印象,在 KNN 算法那节中,我讲到过 Mnist 手写数字识别这个数据集,当时我们采用的是 mini 版的手写数字数据集。实际上完整版的 Mnist 一共有 60000 个训练样本和 10000 个测试样本,这么庞大的数据量更适合用深度学习框架完成训练。
今天的学习目标主要有以下的几个方面:
进一步了解 CNN 网络。CNN 网络在深度学习网络中应用很广,很多网络都是基于 CNN 网络构建的,你有必要进一步了解 CNN 的网络层次,尤其是关于卷积的原理。
初步了解 LeNet 和 AlexNet。它们都是经典的 CNN 网络,我们今天的任务就是认识这些经典的 CNN 网络,这样在接触更深度的 CNN 网络的时候,比如 VGG、GoogleNet 和 ResNet 这些网络的时候,就会更容易理解和使用。
对常用的深度学习框架进行对比,包括 Tensorflow、Keras、Caffe、PyTorch、 MXnet 和 Theano。当选择深度学习框架的时候到底该选择哪个?
使用 Keras 这个深度学习框架编写代码,完成第一个深度学习任务,也就是 Mnist 手写数字识别。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文介绍了如何使用Keras搭建深度学习网络进行手写数字识别。文章首先介绍了CNN网络的结构,包括卷积层、池化层和全连接层的作用,以及激活函数的作用和池化层的降维处理。接着详细解释了卷积操作的原理和代码实现,以及卷积操作对图像进行特征提取的作用。然后介绍了LeNet和AlexNet这两个经典的CNN网络结构,以及它们的参数特征和网络模型。最后,文章提到了其他深度模型如VGG、GoogleNet和ResNet的结构方式改进。通过本文,读者可以快速了解CNN网络的原理和应用,以及使用Keras进行深度学习任务的基本步骤。文章还介绍了Keras的安装和基本使用方法,以及使用Keras对手写数字进行识别的具体代码实现。通过对LeNet模型的训练和评估,读者可以了解如何使用Keras构建深度学习模型,并对模型进行训练和预测。整体而言,本文为读者提供了一个全面的入门指南,帮助他们快速掌握使用Keras进行深度学习任务的基本知识和技能。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《数据分析实战 45 讲》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(21)

  • 最新
  • 精选
  • third
    卷积是一种操作,就像是过滤这个动作。 卷积核是卷积的一层滤网, 多个卷积核形成一个卷积层 卷积层像一个过滤层,过滤掉不需要的杂质

    作者回复: 对的

    2019-03-22
    11
  • JustDoDT
    在python中,要使用OpenCV,要安装cv的package。在python代码中,看到import cv2。但pip install 的名称不是cv2、或者Opencv,而是opencv-python. 执行: pip install opencv-python

    作者回复: 是的,在Python第三方库的仓库https://pypi.org/中,OpenCV的安装包名称为opencv-python,调用时,名称是cv2

    2020-04-25
    10
  • 滨滨
    1、卷积是矩阵运算。图像中不同数据窗口的数据和卷积核(一个滤波矩阵)作内积的操作叫做卷积。 2、卷积核就是图像处理时,给定输入图像,在输出图像中每一个像素是输入图像中一个小区域中像素的加权平均,其中权值由一个函数定义,这个函数称为卷积核。 3、卷积层:多个滤波器叠加便成了卷积层。

    作者回复: 整理总结不错

    2019-05-02
    5
  • 浩然
    至于为什么要翻转,举个例子,假如图像是这样: 0 0 0 1 0 ;卷积核是这样: 1 2 3,如果不翻转,结果就是 0 3 2 1 0,发现结果是反的。如果卷积核翻转成 3 2 1 ,那么结果就是 0 1 2 3 0 ,是正的。

    作者回复: 对的

    2019-04-19
    4
  • 讲的真好,希望老师也能出深度学习的课程

    作者回复: 谢谢林,深度这个变化太快了

    2019-04-01
    4
  • 厚积薄发
    深度学习手写体数字识别 1.卷积,卷积核,卷积层的理解 卷积:是一种特殊的内积操作,先对卷积核进行180度的旋转,然后从第一个像素点依次与卷积核做内积操作。 卷积核:对图像做卷积操作的权重参数 卷积层:一个或多个卷积组成的过滤网 卷积的作用:提取特征,内积操作,把数据映射到线性空间。 激活函数的作用:把线性空间映射到非线性空间,让神经网络具有更强的表达能力 池化层的作用:对神经元的数据进行降维,降低的计算量 全连接层的作用:前一层的输出结果与当前神经元全部进行相连,做最后一层的分类任务,比如softmax

    作者回复: 总结的不错,继续坚持

    2020-11-18
    2
  • Lisa
    老师,配置每个层的时候填的数字有什么一般规律或范围吗?比如全连接层为什么填120呢?为什么填84呢? model.add(Dense(120, activation='relu')) model.add(Dense(84, activation='relu'))

    作者回复: 这个是LeNet-5的模型,3个全连接层的输出维度分别是120,84,10。都是确定好的,直接使用就好了

    2019-09-06
    2
    2
  • 滨滨
    CNN 网络结构中每一层的作用:它通过卷积层提取特征,通过激活函数让结果映射到非线性空间,增强了结果的表达能力,再通过池化层压缩特征图,降低了网络复杂度,最后通过全连接层归一化,然后连接 Softmax 分类器进行计算每个类别的概率。

    作者回复: Good Sharing

    2019-05-02
    2
  • 个人对于卷积、卷积核、卷积层的理解是: 卷积是一种做内积运算的操作; 卷积核就是要做内积运算的规则; 卷积层是融合了一个或多个卷积核(即多个运算规则)的过滤网络

    作者回复: 对的 理解的很好

    2019-04-27
    2
  • 王彬成
    参考链接:https://www.cnblogs.com/readingintheway/p/4977669.html 卷积核为何要翻转才能计算的原因: 所谓的翻转只是因为你站立的现在是过去的未来,而因为h(t)始终不变,故h(1)其实是前一秒的h(1),而前一秒的h(1)就是现在,所以从当前x(4)的角度往左看,你看到的是过去的作用。h(t)未翻转前,当从h(0)往右看,你看到的是现在对于未来的影响,当翻转h(t)之后,从h(0)往左看,你依次看到的越来越远的过去对现在的影响,而这个影响,与从x=4向左看的作用影响相对应(都是越来越远的过去),作用与作用的响应就对应起来了,这一切的本质,是因为你站立的时间观察点和方向在变。

    作者回复: 多谢分享

    2019-03-22
    2
收起评论
显示
设置
留言
21
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部