(点击“阅读原文”即可进入查看课程表)

刘颖,某互联网创业公司COO,技术出身,做产品里最懂运营的。

这是一个TensorFlow的系列文章,本文是第三篇,在这个系列中,你讲了解到机器学习的一些基本概念、TensorFlow的使用,并能实际完成手写数字识别、图像分类、风格迁移等实战项目。

文章将尽量用平实的语言描述、少用公式、多用代码截图,总之这将是一份很赞的入门指南。欢迎分享/关注。

上一期,我们用Tensorflow实现了Kaggle的手写识别项目,但准确率比较低,只有92%,这次我们打算把识别的准确率提升到98%以上。

为什么不是上次说的提升到99%以上呢?因为92%到98%是比较容易的,而再从98%到99%是要费不少功夫的,一篇文章难以承载这么多内容,所以将会分成两篇文章,首先是从92%到98%,下一次是从98%到99%。

不要小看提升1%,越往后面,难度就越大。如果我们做到99%准确率,在Kaggle的手写识别这个项目上,也就进入了前25%了,可以说入门了。

回顾上期

上期我们学习了梯度下降、神经网络、损失函数、交叉熵等概念,然后用42000张图片数据训练了一个简单的神经网络,准确度92%。可以说,这只是一个Hello World。

Hello World

如何进行改进

首先,这次我们将使用卷积神经网络来进行图片识别。众所周知,卷积神经网络对于图片识别是非常有效的。

这里我打算这样来构建这个卷积神经网络:

卷积层1+池化层1+卷积层2+池化层2+全连接1+Dropout层+输出层

然而,什么是卷积神经网络?什么是卷积层、池化层、全连接层?Dropout又是什么鬼?

1、什么是卷积神经网络?

我们人看到一幅图像,眨眼之间就知道图像中有什么,图像中的主体在干什么。但计算机不同,计算机看到的每一副图像都是一个数字矩阵。那我们怎么让计算机从一个个数字矩阵中得到有用的信息呢,比如边缘,角点?更甚一点,怎么让计算机理解图像呢?

对图像进行卷积,就是接近目标的第一步。

图像在计算机里的表示可能是这样的:

一张图片

对图像卷积,就是求卷积核作用在图像后,得到的图像对于该卷积核的累加数值。这些累加的数值可以代表这个图片的一些特征。

如果是针对猫进行识别,人可能知道猫头,猫尾巴等特征。CNN对图片进行处理后,也会学习到一些特征,它可能不知道猫头、猫尾巴这些特征,但也会识别出一些我们可能看不出来的特征,CNN通过这些学习到的特征去做判断。

2、什么是卷积层

卷积层的作用是指对图片的矩阵进行卷积运算,得到一些数值,作为图片的某些特征

3、什么是池化层

池化曾的作用是对上层的数据进行采样,也就是只留下一部分,这样的作用是可以缩小数据量和模糊特征。

4、什么是全连接层

全连接层就是连在最后的分类器。前面卷积层和池化层进行处理后,得到了很多的特征,全连接层使用这些特征进行分类。比如识别数字,那就是对0~9的十个类别进行分类。

5、Dropout是什么?

Dropout层是为了防止CNN对训练样本过拟合,而导致处理新样本的时候效果不好,采取的丢弃部分激活参数的处理方式。

这里对这些概念的解释都是比较简单的,如果希望详细了解,可以看知乎的这个链接:

CNN卷积神经网络是什么?(https://www.zhihu.com/question/52668301)

代码实现

1 标签的处理

2 把数据分为训练集和验证集

3 定义处理数据的函数

4 定义网络的结构

5 定义各类参数

6 进行训练

生成结果

这里迭代20个周期:

7 验证集上的准确度

然后我们使用这个模型对Kaggle的测试集进行预测,并生成cvs格式的结果

8 生成结果

这里建议跑30轮以上,因为在验证集上有98.35%准确率,上传到Kaggle往往就只有百分之九十七点几的准确率了。

原文链接:http://www.jianshu.com/p/696bde1641d8

   BY  简书

往期精彩回顾

深度学习视频(一) | 免费放送—深度学习的应用场景和数学基础

深度学习视频(二) | 免费放送—卷积神经网络(一)

深度学习视频(三) | 免费放送—卷积神经网络(二)

深度学习视频(四) | 免费放送—深度学习的具体模型和方法

深度学习视频(五) | 免费放送—上机实操(一)

↓↓↓ 点击"阅读原文" 【查看北京 | GPU CUDA 进阶课程】

用TensorFlow做Kaggle“手写识别”达到98%准确率-详解相关推荐

  1. 最终章 | TensorFlow战Kaggle“手写识别达成99%准确率

    刘颖,某互联网创业公司COO,技术出身,做产品里最懂运营的. 这是一个TensorFlow的系列文章,本文是第三篇,在这个系列中,你讲了解到机器学习的一些基本概念.TensorFlow的使用,并能实际 ...

  2. densenet tensorflow 中文汉字手写识别

    densenet 中文汉字手写识别,代码如下: import tensorflow as tf import os import random import math import tensorflo ...

  3. 四、用简单神经网络识别手写数字(内含代码详解及订正)

    本博客主要内容为图书<神经网络与深度学习>和National Taiwan University (NTU)林轩田老师的<Machine Learning>的学习笔记,因此在全 ...

  4. 手写键盘计算机,手写键盘怎么用 手写键盘使用技巧【详解】

    [电脑手写板输入法]手写键盘用户使用指导 手写键盘使用技巧 手写键盘用户使用指导 手写键盘巧妙的将 手写板 和键盘.鼠标结合到一起,备受用户青睐,需要文字录入时可以用手写板写字,平时可以用键盘进行一些 ...

  5. Tensorflow实现MNIST手写识别

    MNIST手写体识别训练和测试模型下载地址: MNIST手写体模型下载 MNIST手写体识别,标签编码为独热(one-hot)编码 One-Hot编码,又称为一位有效编码,主要是采用N位状态寄存器来对 ...

  6. TensorFlow 莫烦 手写识别 cross_entry (五)

    # -*- coding: utf-8 -*- """ Created on Thu Apr 20 15:40:48 2017 同济大学 土木大楼B406 @author ...

  7. 手写RPC-具体实现细节详解(近4w字详情)

    这里面是远程通讯的核心,包含了网络通信.编解码协议.远程调用.注册中心.负载均衡等核心代码都在这里面,下面就详细分析下: Tips:这里的文章有点滞后性,实际代码有一点修改,所以在看这里的内容的时候最 ...

  8. Android 电子签名/手写签名 保存到相册详解

    ps:因公司推崇线上信息办公化 设计到客户签名 将客户签好的名字上传到服务器 因此 写了一个demo 废话不多哔哔 上效果图: 这里我运用的是自定义view //权限<uses-permissi ...

  9. Tensorflow快餐教程(1) - 30行代码搞定手写识别

    摘要: Tensorflow入门教程1 去年买了几本讲tensorflow的书,结果今年看的时候发现有些样例代码所用的API已经过时了.看来自己维护一个保持更新的Tensorflow的教程还是有意义的 ...

最新文章

  1. office365为新建账号发送欢迎邮件
  2. python with contextmanager yield 语法糖
  3. php防止恶意充值,php防止恶意刷新与刷票的方法
  4. 科技部教育部联合发文为科研人员绩效考核增加新依据
  5. 不用python爬今日头条_手把手教你从今日头条爬取你想要的任何图片
  6. Centos6.X安装smokeping
  7. 2021年电工(技师)考试题库及电工(技师)考试报名
  8. iOS国际化(多语言)App名称国际化
  9. 英语 动词过去式和过去分词的变化规则
  10. 【观察】智能门锁:弱水三千,谁能先取一瓢?
  11. c语言窗体编辑框框函数,请教:下面c语言是创建口的小程序,函数MessageBox(NULL,,,,MB_OK);中的4个参数各起什么作用?...
  12. 如何下载网吧电影服务器上的电影
  13. linux常用命令与问题排查命令记录
  14. 如何隐藏logo 高德地图api_高德地图去掉logo
  15. 蓝桥杯嵌入式(G4系列)HAL:LCD和LED冲突问题
  16. 计算机中所说的云是什么意思,如何理解云计算中的“云”是什么?
  17. 光遇脚本弹琴_关于光遇弹琴脚本的一点想法
  18. 肖特基二极管与普通二极管的区别
  19. 灰帽python之旅_灰帽 Python之旅10
  20. 一个极端的前端国际化方法

热门文章

  1. 【debug】mount: unknown filesystem type ‘nfs’
  2. html5 心跳效果,css3实现心脏跳动
  3. 织梦index.php源代码,PHP网站目录程序(织梦 v5.7 二次开发)
  4. java如何脱离ide运行_如何脱离IDE使用自己的jar包?
  5. python显示当前中文日期_Python--获取当前日期和时间(含中文格式)
  6. 用MySQL写怎么删除字母_mysql如何替换掉字母
  7. mysql有热备设置_Mysql数据热备配置与操作方法
  8. matlab直方图显示,控制分类直方图的显示
  9. ASP.NET入门教程:服务器控件
  10. [美丽的烦恼] SQL删除某些字段重复的记录(只保留一条)