猜你喜欢
深度学习:Keras快速开发入门

深度学习:Keras快速开发入门

书籍作者:乐毅 ISBN:9787121318689
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:5333
创建日期:2021-02-14 发布日期:2021-02-14
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介

  《深度学习:Keras快速开发入门》首先介绍了深度学习相关的理论和主流的深度学习框架,对比了不同深度学习框架的优缺点,以Keras这一具有高度模块化,极简式的高层深度学习框架为切入点,从Keras的安装、配置和编译等基本环境入手,详细介绍了Keras的模型、网络结构、数据预处理方法、参数配置以及调试技巧和可视化工具。帮助读者快速掌握一款深度学习框架,从而解决工作和学习当中神经网络模型的使用问题。同时,《深度学习:Keras快速开发入门》还介绍了如何用Keras快速构建深度学习原型并着手实战。最后通过Kaggle的知识竞赛实例向读者展示Keras作为深度学习开发工具的强大之处,从而帮助读者迅速获得深度学习开发经验。
  《深度学习:Keras快速开发入门》是一本实践性很强的深度学习工具书,适合希望快速学习和使用Keras深度学习框架的工程师、学者和从业者。特别适合立志从事深度学习和AI相关的行业,并且对于希望用Keras开发实际项目的工程技术人员,是非常实用的参考手册和工具书。

作者简介

  乐毅,计算机专业硕士,现任职于某人工智能企业深度视觉项目,资深深度视觉架构师。负责公司利用深度学习技术在人脸识别的应用和开发,对深度学习及人脸识别技术具有浓厚兴趣。擅长Caffe、Keras和TensoFlow等深度学习框架的开发和应用。

  严超,计算机专业硕士,现任职于某大型信息科技企业,高级软件工程师。负责公司深度学习,云计算等技术领域的应用研究及相关项目,对机器学习、云计算、数据深度挖掘具有浓厚兴趣。擅长Keras等深度学习框架及网络模型应用。

编辑推荐

  国内外众多学者,从业者或业余爱好者都纷纷加入到深度学习(DeepLearning)的研究和工作中来。然而,很多读者朋友被复杂的数学公式和理论感到困惑,以至于常常无从下手,TensoFlow难以理解的设计和表述方法到Caffe冗长的神经网络模型定义,很难清晰、完整和快速地掌握深度学习技术。《深度学习:Keras快速开发入门》选择Keras这一深度学习框架向读者介绍深度学习技术和应用,力求使用简洁、高效和丰富的实例帮助读者快速掌握这门技术。
  通过《深度学习:Keras快速开发入门》,您将学到:
  Keras框架诞生的历史,以及其特点,优势。
  keras的安装和配置。
  Keras模型训练。
  Keras的网络结构。
  Keras的数据预处理方法。
  Keras的调试技巧和可视化工具。
  如何用Keras快速构建深度学习原型并着手实战。

前言
1950年,著名的图灵测试诞生,按照艾伦·麦席森·图灵(Alan Mathison Turing)的定义:“如果一台机器能够与人类展开对话,而不能被辨别出其机器身份,那么称这台机器具有智能。”围绕着图灵测试模型产生了一系列的争论,最终1956年夏天,在美国达特茅斯大学召开的会议上确立了“人工智能(Artificial Intelligence)”这一术语,并被认为是人工智能诞生的标志。时至今日,人工智能的发展经历了多次起伏,从20世纪50年代人工智能概念的兴起到20世纪60年代末到20世纪70年代的专家系统,再到20世纪80年代人工神经网络的飞速发展,20世纪90年代浅层机器学习的出现。2006年加拿大多伦多大学教授、机器学习领域泰斗Geoffrey Hinton和他的学生Ruslan Salakhutdinov在顶尖学术刊物Science上发表了一篇文章,开启了深度学习在学术界和工业界的浪潮。虽然人们对目前人工智能技术仍然存在许多争论,到底什么是真正的人工智能?像人一样能够独立思考的机器人是否存在?但这些疑问阻挡不了人类对人工智能的探索和向往。
  2017年5月,Google Deepmind公司对去年发布的人工智能程序阿尔法围棋(AlphaGo)进一步优化和训练,并发起对战世界围棋冠军、职业九段选手柯洁的挑战,以3:0的总比分获胜,击破了代表人类智慧的最后堡垒。Deepmind公司的围棋程序(AlphaGo)与之前的人工智能程序不同,它能够从大量输入的棋谱数据自我学习,而不像专家系统需要人类的智能去干预和调整算法,这有力地证明了人工智能已经迎来了一个更高的发展阶段,即深度学习技术。
  与此同时,国内外众多学者、从业者或业余爱好者都纷纷加入到深度学习(Deep Learning)的研究和工作中来。然而,很多读者朋友对复杂的数学公式和理论感到困惑,以至于常常无从下手,从TensoFlow难以理解的设计和表述方法到Caffe冗长的神经网络模型定义,很难清晰、完整和快速地掌握深度学习技术。本书选择Keras这一深度学习框架向读者介绍深度学习技术和应用,力求使用简洁、高效和丰富的实例帮助读者快速掌握这门技术,这得益于Keras良好的模块化、极简的设计、易扩展性和快速原型迭代等特点。通过学习本书的内容,读者能够快速搭建满足产品需求的神经网络模型,从而加快产品研发周期。
  本书共包括9章,每章的主要内容如下:
  第1章“Keras概述”介绍了Keras框架的诞生历史、特点、优势以及与其他框架的对比。
  第2章“Keras的安装与配置”为读者介绍了如何安装与配置Keras,为进一步的Keras开发做准备。
  第3章“Keras快速上手”为读者展现了Keras开发低门槛的特点,有一定Python基础的开发人员都能非常简单地完成他的第一个Keras模型训练。
  第4章“Keras模型的定义”详细介绍了Keras的两种类型模型——Sequential模型和函数式模型,以及它们的参数定义和接口,并说明了使用中应该注意的地方。
  第5章“Keras网络结构”深入Keras的内部结构,详细介绍了Keras的网络结构及其层的定义,并对每层的参数进行说明和分析。同时,读者可以了解到深度学习通用的网络层的知识。
  第6章“Keras数据预处理”讲解了Keras提供的常用数据预处理工具方法,以及对于特定数据预处理使用场景的解析。
  第7章“Keras内置网络配置”介绍了Keras提供的内置网络配置,帮助读者完善模型优化体系的同时,熟悉Keras内置网络配置方法。
  第8章“Keras实用技巧和可视化”帮助读者完善了Keras实用技巧与可视化方法,打通Keras与下层框架(Theano、TensorFlow)的使用阻隔。
  第9章“Keras实战”完成了三个经典的Keras实战练习,增强读者对完整Keras训练过程的理解。
  本书的内容由我与朋友严超共同完成,在写作过程中我们经常交流、探讨,互相指正对方的错误,从而达到共同进步,在此对严超表示感谢。同时还要感谢电子工业出版社的孙学瑛老师对本书提出了很多非常好的建议,帮助我们顺利出版此书。
  深度学习技术发展迅速,各种知识和应用工具变化很快,GitHub上Keras项目也在不断更新和修正。笔者才疏学浅,理解有限,加之编写时间也较仓促,书中难免有错谬之处,敬请广大读者朋友批评指正,不胜感激。
  乐 毅
  2017年6月
目录
第1章 Keras概述 1
1.1 Keras简介 1
1.1.1 Keras 2 1
1.1.2 Keras功能构成 4
1.2 Keras特点 6
1.3 主要深度学习框架 8
1.3.1 Caffe 8
1.3.2 Torch 10
1.3.3 Keras 12
1.3.4 MXNet 12
1.3.5 TensorFlow 13
1.3.5 CNTK 14
1.3.6 Theano 14
第2章 Keras的安装与配置 16
2.1 Windows环境下安装Keras 16
2.1.1 硬件配置 16
2.1.2 Windows版本 18
2.1.3 Microsoft Visual Studio版本 18
2.1.4 Python环境 18
2.1.5 CUDA 18
2.1.6 加速库CuDNN 19
2.1.7 Keras框架的安装 19
2.2 Linux环境下的安装 20
2.2.1 硬件配置 20
2.2.2 Linux版本 21
2.2.3 Ubuntu环境的设置 22
2.2.4 CUDA开发环境 22
2.2.5 加速库cuDNN 23
2.2.6 Keras框架安装 24
第3章 Keras快速上手 25
3.1 基本概念 25
3.2 初识Sequential模型 29
3.3 一个MNIST手写数字实例 30
3.3.1 MNIST数据准备 30
3.3.2 建立模型 31
3.3.3 训练模型 32
第4章 Keras模型的定义 36
4.1 Keras模型 36
4.2 Sequential模型 38
4.2.1 Sequential模型接口 38
4.2.2 Sequential模型的数据输入 48
4.2.3 模型编译 49
4.2.4 模型训练 50
4.3 函数式模型 51
4.3.1 全连接网络 52
4.3.2 函数模型接口 53
4.3.3 多输入和多输出模型 63
4.3.4 共享层模型 67
第5章 Keras网络结构 71
5.1 Keras层对象方法 71
5.2 常用层 72
5.2.1 Dense层 72
5.2.2 Activation层 74
5.2.3 Dropout层 75
5.2.4 Flatten层 75
5.2.5 Reshape层 76
5.2.6 Permute层 77
5.2.7 RepeatVector层 78
5.2.8 Lambda层 79
5.2.9 ActivityRegularizer层 80
5.2.10 Masking层 81
5.3 卷积层 82
5.3.1 Conv1D层 82
5.3.2 Conv2D层 84
5.3.3 SeparableConv2D层 87
5.3.4 Conv2DTranspose层 91
5.3.5 Conv3D层 94
5.3.6 Cropping1D层 97
5.3.6 Cropping2D层 97
5.3.7 Cropping3D层 98
5.3.8 UpSampling1D层 99
5.3.9 UpSampling2D层 100
5.3.10 UpSampling3D层 101
5.3.11 ZeroPadding1D层 102
5.3.12 ZeroPadding2D层 103
5.3.13 ZeroPadding3D层 104
5.4 池化层 105
5.4.1 MaxPooling1D层 105
5.4.2 MaxPooling2D层 106
5.4.3 MaxPooling3D层 108
5.4.4 AveragePooling1D层 109
5.4.5 AveragePooling2D层 110
5.4.6 AveragePooling3D层 111
5.4.7 GlobalMaxPooling1D层 112
5.4.8 GlobalAveragePooling1D层 113
5.4.9 GlobalMaxPooling2D层 113
5.4.10 GlobalAveragePooling2D层 114
5.5 局部连接层 115
5.5.1 LocallyConnected1D层 115
5.5.2 LocallyConnected2D层 117
5.6 循环层 120
5.6.1 Recurrent层 120
5.6.2 SimpleRNN层 124
5.6.3 GRU层 126
5.6.4 LSTM层 127
5.7 嵌入层 129
5.8 融合层 131
5.9 激活层 134
5.9.1 LeakyReLU层 134
5.9.2 PReLU层 134
5.9.3 ELU层 135
5.9.4 ThresholdedReLU层 136
5.10 规范层 137
5.11 噪声层 139
5.11.1 GaussianNoise层 139
5.11.2 GaussianDropout层 139
5.12 包装器Wrapper 140
5.12.1 TimeDistributed层 140
5.12.2 Bidirectional层 141
5.13 自定义层 142
第6章 Keras数据预处理 144
6.1 序列数据预处理 145
6.1.1 序列数据填充 145
6.1.2 提取序列跳字样本 148
6.1.3 生成序列抽样概率表 151
6.2 文本预处理 153
6.2.1 分割句子获得单词序列 153
6.2.2 OneHot序列编码器 154
6.2.3 单词向量化 155
6.3 图像预处理 159
第7章 Keras内置网络配置 167
7.1 模型性能评估模块 168
7.1.1 Keras内置性能评估方法 168
7.1.2 使用Keras内置性能评估 170
7.1.3 自定义性能评估函数 171
7.2 损失函数 171
7.3 优化器函数 174
7.3.1 Keras优化器使用 174
7.3.2 Keras内置优化器 176
7.4 激活函数 180
7.4.1 添加激活函数方法 180
7.4.2 Keras内置激活函数 181
7.4.3 Keras高级激活函数 185
7.5 初始化参数 189
7.5.1 使用初始化方法 189
7.5.2 Keras内置初始化方法 190
7.5.3 自定义Keras初始化方法 196
7.6 正则项 196
7.6.1 使用正则项 197
7.6.2 Keras内置正则项 198
7.6.3 自定义Keras正则项 198
7.7 参数约束项 199
7.7.1 使用参数约束项 199
7.7.2 Keras内置参数约束项 200
第8章 Keras实用技巧和可视化 202
8.1 Keras调试与排错 202
8.1.1 Keras Callback回调函数与调试技巧 202
8.1.2 备份和还原Keras模型 215
8.2 Keras内置Scikit-Learn接口包装器 217
8.3 Keras内置可视化工具 224
第9章 Keras实战 227
9.1 训练一个准确率高于90%的Cifar-10预测模型 227
9.1.1 数据预处理 232
9.1.2 训练 233
9.2 在Keras模型中使用预训练词向量判定文本类别 239
9.2.1 数据下载和实验方法 240
9.2.2 数据预处理 241
9.2.3 训练 245
9.3 用Keras实现DCGAN生成对抗网络还原MNIST样本 247
9.3.1 DCGAN网络拓扑结构 250
9.3.2 训练 254

产品特色