Keras 是一款用 Python 编写的高级神经网络 API,由François Chollet发明,它能够以 TensorFlow, CNTK, 或者 Theano 作为后端运行。Keras 的开发重点是支持快速的实验。因此能够以最小的时延把你的想法转换为实验结果,所以是一个很流行的机器学习和深度学习开发工具。

数据科学家&机器学习专家Charles Martin曾这么总结过Keras的功劳:

机器学习算法我们已经使用了10余年了,这些算法并不是很容易掌握和运用。在我看来,这些年最重要的一项进展就是Keras的出现,它让此前被人们认为并不现实甚至遥不可及的人工智能产品实现了落地应用,发挥出它们的价值。

总而言之,Keras是任何想涉足机器学习研发工作的人都应掌握的工具。关于Keras的学习资料,现在网上已经出现了很多。今天我们就分享一下新手入门掌握Keras的学习路径,教你如何通过7步从头开始学习Keras,进而打开深度学习的大门。

第一步:神经网络的基础知识

要想使用Keras学习机器学习知识,最好先熟悉神经网络的基础原理。如果不了解,可以看看我们这篇对神经网络的详细解读:

以及这篇对8种神经网络的总结归纳:

第二步:Keras基础知识

首先,到底什么是Keras?了解的最好方式就是阅读Keras官方中文文档主页内容(

强烈推荐DataCamp计算机专家Karlijn Willems整理的Keras速查表,可以把它下载下来放在手边使用,非常方便。下载地址:

还可以查看她对这篇速查表的详细解释:

最后查看Keras官方文档中关于Keras的安装问题,了解如何安装Keras:

第三步:Keras概览

机器学习专家Valerio Maggio在PyData London 2017大会上分享了一场叫做“10步掌握Keras”的很棒的演讲。内容包括了详细介绍Keras,与其它机器学习库的比较,已经如何使用Keras。这篇视频绝对值得观看,大概时长90分钟,一定能让你对Keras的理解更深一步。

视频地址:

接着查看Keras文档的如下几个页面,以理解Keras的模型实现方法。

如果你想进一步了解Keras和TensorFlow之间的区别,可以看看Aakash Nain写的这篇博客:

最后,学习关于更改Keras后端的信息,查看文档中的这个页面:

第四步:用Keras迈出一小步

前面掌握了神经网络知识和Keras的基本原理后,我们现在先用Keras做出一点东西,就跟大家使用新的深度学习库时通常的做法一样:实现一个简单的逻辑回归模型。

如果你前面看过我们推荐的Valerio的视频,那么这里你应该知道完成这个任务需要哪些东西。如果没看,可以参考Valerio的这篇演讲的笔记要点,很好地比较了TensorFlow,Theano和Keras的实现代码。如果你只对Keras代码感兴趣,看完Keras部分就OK了。

笔记地址:

下方就是Keras部分的代码(摘自Maggie的笔记),从中应该能很清楚的看到如何用Keras实现逻辑回归模型。注意,数据预处理部分已经包含在内:

from keras.models import Sequential

from keras.layers import Dense, Activation

dims = X_train.shape[1]

print(dims, 'dims')

print("Building model...")

nb_classes = Y_train.shape[1]

print(nb_classes, 'classes')

model = Sequential()

model.add(Dense(nb_classes, input_shape=(dims,), activation='sigmoid'))

model.add(Activation('softmax'))

model.compile(optimizer='sgd', loss='categorical_crossentropy')

model.fit(X_train, Y_train)

实现逻辑回归模型只是简单的一小步,下面我们用Keras实现更复杂更有价值的东西——神经网络,且包含一个隐藏层。

首先,确保已经查看了Keras文档的如下页面,主要讲解Sequential模型和网络层。

待熟悉这部分文档后,就开始用Keras实现神经网络。首先可以参看集智的这篇用Keras搭建深度神经网络的教程:

然后跟着这篇讲解用Keras实现一个会玩一字棋游戏的神经网络的教程:

教程中附有代码,跟着敲就行。

等完成以上这四步后,我们接着学习实现更为复杂的神经网络。

第五步:实现卷积神经网络

要想在Keras中实现卷积神经网络(CNN),首先需阅读Keras文档中关于卷积层的部分:

之后可以查看集智的这两篇讲解文章和教程:

机器学习专家Brandon Rohrer的讲解卷积神经网络的这段视频也值得一看:

如果觉得不够,可以搜罗其它关于用Keras实现CNN网络的教程,总之多加练习。

第六步:实现循环神经网络

和前面实现卷积神经网络一样,我们在用Keras实现循环神经网络(RNN)之前,首先阅读Keras文档中关于循环层的部分:

如果对循环神经网络知识不是很熟悉,一定先掌握这部分知识。接着我们学习Chris Albon这篇用Keras实现LSTM网络(RNN中的主要类型)用于文本分类的教程:

了解更多关于循环神经网络的知识,还可以看看Brandon Rohrer的这段讲解视频:

以及集智的这篇讲解用RNN生成超级玛丽关卡的文章:

第七步:接下来呢?

到了这里,你应该已经对Keras有了很牢固的理解,包括为何用Keras,在哪些情况下用Keras,以及如何用Keras实现多种神经网络架构。现在算得上是Keras老手了,对吧?

不过,我们还是要百尺竿头更进一步,探索更多额Keras话题。建议下一步跟着Keras的官方教程学习:

之后,看看Keras的这篇示例目录,包含了视觉模型实例,文本&序列模型,生成式模型示例等等。

另外,也可以挑战一下自己,学习怎样调试你在前面几步实现的神经网络模型。比如修改优化器,添加网络层,应用激活函数等。或者用Keras指标回过头判定一下你的模型的性能。Keras文档的评估标准部分是个不错的学习去处:

结语

上面就是大家学习和掌握Keras的七个步骤,通过这七步,相信最后你应该能熟练应用Keras。

后面我们会分享针对小白的更为详细具体的Keras入门教程,包括从设置开发环境、安装Keras、加载数据集到定义模型、训练模型和评估模型的整个流程,欢迎关注我们。

0806期《人工智能-从零开始到精通》火热报名中!

谈笑风生 在线编程 了解一下?

或许你还喜欢:

keras 升级_如何入门Keras?相关推荐

  1. keras冻结_[开发技巧]·keras如何冻结网络层

    [开发技巧]·keras如何冻结网络层 在使用keras进行进行finetune有时需要冻结一些网络层加速训练 keras中提供冻结单个层的方法:layer.trainable = False 这个应 ...

  2. cnn keras 实现_在iOS应用中实现Keras CNN

    cnn keras 实现 I first thought about image classification in an app through watching the TV show Silic ...

  3. keras神经网络回归预测_如何使用Keras建立您的第一个神经网络来预测房价

    keras神经网络回归预测 by Joseph Lee Wei En 通过李维恩 一步一步的完整的初学者指南,可使用像Deep Learning专业版这样的几行代码来构建您的第一个神经网络! (A s ...

  4. keras中lstm参数_如何使用Keras为自定义NER构建深度神经网络

    在这篇文章中,我们将学习如何使用Keras创建一个简单的神经网络来从非结构化文本数据中提取信息(NER). 模型架构 在这里,我们将使用BILSTM + CRF层.LSTM层用于过滤不需要的信息,将仅 ...

  5. Keras functional API快速入门

    2019独角兽企业重金招聘Python工程师标准>>> Keras functional API快速入门 The Keras functional API is the way to ...

  6. 使用keras进行深度学习_如何在Keras中通过深度学习对蝴蝶进行分类

    使用keras进行深度学习 A while ago I read an interesting blog post on the website of the Dutch organization V ...

  7. 超快速!10分钟入门Keras指南

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自|机器学习算法工程师 1 Keras框架介绍 在用了一段时 ...

  8. [Python人工智能] 十六.Keras环境搭建、入门基础及回归神经网络案例

    从本专栏开始,作者正式研究Python深度学习.神经网络及人工智能相关知识.前一篇文章详细讲解了无监督学习Autoencoder的原理知识,然后用MNIST手写数字案例进行对比实验及聚类分析.这篇文章 ...

  9. 《Keras深度学习:入门、实战与进阶》之印第安人糖尿病诊断

    本文摘自<Keras深度学习:入门.实战与进阶>. 1.数据理解 本节使用Pima Indians糖尿病发病情况数据集.该数据集最初来自国家糖尿病/消化/肾脏疾病研究所.数据集的目标是基于 ...

最新文章

  1. onclick=两个函数_[译]React函数组件和类组件的差异
  2. 碎片化学习的三大障碍及破解之道
  3. STL - 底层实现
  4. PHP实训笔记,【学习笔记19】实验吧 让我进去
  5. antd 能自适应吗_react 基于antd表格自适应宽度显示。。。鼠标滑动显示详细内容解决办法...
  6. OPPO 物联网开放之路
  7. ZeroMQ API简介
  8. 爬虫2 urllib用法
  9. foxit pdf editor linux,Foxit PDF Editor
  10. 给学校开放计算机建议书30字,学生给学校建议书
  11. 电脑文件的后缀名不见了,如何显示隐藏扩展名?
  12. LED跑马灯-位操作
  13. 记录oracle表-字段小写转大写-自用
  14. android实现矩形,android圆角矩形的实现
  15. 华三交换机配置vrrp_VRRP原理与配置 华为、华三交换机,路由器
  16. 获取Json对象中Json数组中的一个Json对象
  17. //菱形,内藏十字架
  18. redis cluster 4.0.9 之四: redis-trib.rb add-node
  19. Unlabeled Samples Generated by GAN Improve the Person Re-identification Baseline in vitro 论文阅读
  20. Linux--git

热门文章

  1. C#内存共享通讯示例
  2. .net在web.config中设置网站编码格式
  3. 跨域请求的常用方式及解释
  4. linux yum 命令 详解
  5. javascript 验证身份证
  6. Java中正则表达式、模式匹配与信息抽取
  7. [TC]SRM615 div1 250 AmebaDiv1
  8. Anti-alias的前世今生(二):Post process based AA
  9. XML命名空间和相关类简介
  10. php 防止造假ip攻击,php防止网站被攻击的应急代码