keras框架下的深度学习(一)手写体数字识别

本文是keras深度学习系列的第一篇,介绍了keras框架及其使用,并通过mnist数据集演示了手写数字识别的全过程,包括数据预处理、网络框架搭建、编译、训练和测试。同时,还附带了梯度下降算法的简单讲解。
摘要由CSDN通过智能技术生成

文章目录

前言

一、keras的介绍及其操作使用

二、手写题数字识别

1.介绍

2.对数据的预处理

3.搭建网络框架 

4.编译

5.循环训练

6.测试训练的网络模

7.总代码

三、附:梯度下降算法

1.导数的梯度下降算法

2.偏导数的梯度下降算法

总结


前言

        这个系列文章主要记录使用keras框架来搭建深度学习模型的学习过程,其中有一些自己的想法和体会,主要学习的书籍是:Deep Learning with Python使用的IDEpycharm,需要安装keras以及相应的tensorflow的库。这篇文章主要是keras的介绍以及在keras框架下的mnist手写体数字识别程序的讲解。




一、keras的介绍及其操作使用

        Keras 是一个 Python 深度学习框架,可以方便地定义和训练几乎所有类型的深度学习模型。Keras 最开始是为研究人员开发的,其目的在于快速实验。我们可以进入网站:主页 - Keras 中文文档查看keras内的配置,如图所示:

        Keras的使用很简单上手,但是运行keras需要一个后端引擎,这里推荐使用tensorflow后端。

       当我们对keras代码中有什么疑惑时,可以选择查看网页上对应的内容,然后对源代码进行查看。比如说我们选择查看常用数据集(Datasets):

    接下来我们在本地文件路径下:C:\Users\Quiming\AppData\Roaming\Python\Python37\site-packages\keras\datasets,可以看到每个数据集的调用文件的源代码:

        我们随便选择一个数据集文件打开,比如说mnist.py文件:

         我们可以看到mnist里面的load_data函数具体是做什么,不一定要看懂,但是至少要知道在函数中输入的是什么,输出的是什么,这样更能方便于理解。

        当我们不理解layers层时,我们可以查看layers文件下的编程文件:

        所以当遇到keras中遇到语句不明白的或者错误但是找不到原因的,可以尝试去keras网页上或者本地文件中查看每个部分的信息;若只关注代码的使用,则需要明白函数的输入输出,以及这个函数大概做了什么事情。(三大利器:keras文档网页、源码以及baidu搜索)



二、手写题数字识别



1.介绍

  在深度学习中的深度指的是数据模型中包含着的多个次,而深度学习是对一堆数值做数学运算,但是这种数学运算是高纬度的,是大量的;在这些数学运算中,深度学习中的通过反馈(比如后向传播)来对参数进行调整,然后再进行计算。如此反复数次,从而越来越接近我们所给出的正确结果。而在这个过程中,深度学习中的每个层所学习到的就是参数的具体数值。模型训练好以后,只需要一个输入,就能得到相应的输出。

       对于深度学习的编程,以下是具体步骤(针对于keras框架):

  1.对数据的预处理,如把图片数据变成数值矩阵,把离散的数据变成向量,把数据归一化等等,其目的是为了之后的学习;2.搭建网络框架,即输入层,隐藏层和输出层,深度学习所需要学习的参数在这些层里面;3.编译,即定义所需要用的优化器、损失函数等;4.循环训练,让网络一次又一次的运行,最后得到学习后的参数;5.测试训练的网络模型,在模型训练结束后,进行测试来验证其泛化能力。

  本文中我们使用mnist数据集,这个数据集包含60000张训练图像和10000张测试图像,全部都是尺寸28*28像素的手写数字图片,如下图所示:

  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值