《Python深度学习入门: 从基础知识到实践应用》全面细致地讲解了深度学习的基础知识及其应用,具体内容包括深度学习开发环境的准备、Python的基础知识,以及深度学习模型的使用与开发等。书中充分结合了实例,对深度学习的概念、模型和程序语句进行了深入浅出的介绍,尤其是重点介绍了使用迁移学习的“NyanCheck”应用程序如何识别图像的种类,全面剖析了深度学习在实际中的应用。
人工智能无疑是近年来热门词汇,而深度学习又是热门中的热门,对于想要进入人工智能行业的您来说,节省时间、快速入门首要问题。再多的知识也要实践,现场实操,才是快速学习、消化的通路。
《Python深度学习入门: 从基础知识到实践应用》正是这样一本,从基础理论讲起,以实操驱动的方式全面展示技巧和方法,为您提供了快速入门机器学习的途径,找到了学习的方法。
原书前言
近年来,在人工智能的相关领域中,深度学习备受关注。在深度学习领域中,“图像处理”的关注程度较高,应用范围较广,服务支持较多。此外,放眼全球该领域的论文,每年发表的与图像识别相关的论文数不胜数。
本书面向在研究和工作中使用深度学习的工程师,是一本涉及Python 必要基础知识、深度学习模型开发方法以及Web 应用程序使用方法的书籍。
本书是为以下人士而写的:
没有Python 的基础知识储备,但想学习深度学习。
想知道如何使用深度学习模型开发Web 应用程序。
对于这些读者来说,我们使用的数学公式不是很多,即使使用也是在编写相关程序时以一种易于理解的方式对其进行解释。特别是后一章中介绍的名为“ NyanCheck”的应用程序,使用了迁移学习,通过读取猫的图像来识别猫的类型,这对实际的应用程序开发具有重要的参考价值。
本书如能为工程师们的应用程序开发助一臂之力, 我们将甚为荣幸。
木村优志
2019 年6 月
目录
译者序
原书前言
本书的读者对象和阅读本书所需的必要知识
本书的构成
第1 部分 Python入门篇
第0 章 开发环境的准备 001
0.1 Anaconda 的安装 002
0.1.1 Anaconda 的安装方法 002
0.1.2 虚拟环境的搭建 006
0.1.3 库的安装 008
0.1.4 Jupyter 的启动和安装 009
0.2 Google Colaboratory 的使用 012
0.3 macOS 中虚拟环境的搭建 013
第1 章 运算、变量和类型 017
1.1 输出Hello world 018
1.1.1 关于Python 018
1.1.2 使用Python 输出Hello world 018
1.2 Python 的用途 019
1.3 注释的输入 020
1.4 数字和字符串 021
1.5 运算 023
1.6 变量 026
1.6.1 变量的定义 026
1.6.2 变量的命名规则 026
1.7 变量的更新 030
1.8 字符串的拼接 035
1.9 类型 037
1.10 类型的转换 040
1.11 比较运算符的转换 043
第2 章 if 条件语句 045
2.1 if 语句 046
2.2 else 语句 049
2.3 elif 语句 051
2.4 and、not、or 054
第3 章 列表类型 057
3.1 列表类型① 058
3.2 列表类型② 060
3.3 list in list 062
3.4 列表的取值 064
3.5 列表的切片 066
3.6 列表元素的更新和添加 069
3.7 列表元素的删除 071
3.8 列表类型的注意要点 073
第4 章 字典类型 077
4.1 什么是字典类型 078
4.2 字典的取值 080
4.3 字典的更新和添加 082
4.4 字典元素的删除 084
第5 章 while 语句 087
5.1 什么是while 语句 088
5.2 while 语句的使用 090
5.3 while+if 语句的使用 092
第6 章 for 语句 095
6.1 什么是for 语句 096
6.2 什么是break 语句 098
6.3 什么是continue 语句 100
6.4 for 语句中的索引表示 102
6.5 列表嵌套循环 104
6.6 字典类型的循环 106
第7 章 函数与方法 109
7.1 函数的基础与内置函数 110
7.2 函数与方法的说明 114
7.3 字符串类型的方法 117
7.4 字符串类型的方法(format) 119
7.5 列表类型的方法(index) 121
7.6 列表类型的方法(sort) 123
7.7 定义一个函数 126
7.8 参数 128
7.9 多个参数 130
7.10 参数的默认值 132
7.11 return 134
7.12 函数的import 137
第8 章 对象和类 141
8.1 对象 142
8.2 类(成员和构造方法) 144
8.3 类(方法) 147
8.4 字符串的格式化 151
第2 部分
深度学习篇
第9 章 NumPy 与数组 155
9.1 NumPy 简介 156
9.2 NumPy 的import 157
9.3 NumPy 与列表的比较 158
9.4 array 的创建 160
9.4.1 关于array 的创建 160
9.4.2 数组形状的指定方法 160
9.4.3 基于数组范围创建数组的方法 161
9.5 元素的访问 163
9.6 np.array 的属性 165
9.7 slice 167
9.8 数组特定元素的访问 169
9.9 数组的运算 171
9.10 np.array 的形状操作 173
9.11 数组的合并 177
9.12 数组的分割 179
9.13 数组的复制 180
9.14 数组的多种运算 181
9.15 广播 186
第10 章 Pandas 与DataFrame 189
10.1 Pandas 简介 190
10.2 DataFrame 的创建 193
10.3 DataFrame 的表示 195
10.4 统计量的表示 198
10.5 DataFrame 的排序(sort) 199
10.6 DataFrame 的筛选 201
10.7 特定条件的取值 205
10.8 列的添加 206
10.9 DataFrame 的运算 207
10.10 复杂的运算 211
10.11 DataFrame 的合并 213
10.12 分组 218
10.13 图表的表示 220
第11 章 单层感知器 225
11.1 单层感知器简介 226
11.1.1 什么是单层感知器 226
11.1.2 关于单层感知器的学习 226
11.2 单层感知器的实际操作 230
11.2.1 NumPy 和Keras 的模块导入 230
11.2.2 学习网络定义 230
11.2.3 神经网络的输入和监督信号的设定 231
11.2.4 学习的设置与实行 231
11.2.5 学习权重的确认 233
11.2.6 学习的神经网络的输出确认 234
第12 章 深度学习入门 235
12.1 深度学习简介 236
12.1.1 什么是深度学习 236
12.1.2 多层感知器的学习方法 236
12.2 CrossEntropy 239
12.3 softmax 240
12.4 SGD 241
12.5 梯度消失问题 242
12.6 深度学习的应用 244
12.7 利用全连接神经网络进行分类 246
12.8 利用全连接神经网络进行分类(CIFAR10) 249
12.9 卷积层神经网络简介 253
12.9.1 深度学习中层的种类 253
12.9.2 什么是卷积层神经网络 253
12.9.3 卷积层神经网络的计算方法 254
12.10 批量正则化 256
12.11 Global Average Pooling 257
12.12 Keras 267
12.12.1 什么是Keras 267
12.12.2 Keras 的Sequence 模型与Model API 267
12.12.3 Keras 的编程实例 268
第13 章 迁移学习与NyanCheck 开发 271
13.1 迁移学习简介 272
13.2 关于NyanCheck 273
13.3 NyanCheck 应用程序的构成 274
13.3.1 样本NyanCheck 应用程序的构成 274
13.3.2 HTML 的模板 274
13.3.3 脚本的应用 276
13.3.4 服务器端的处理 277
13.3.5 猫种类识别的操作 281
13.4 数据的收集、整理和分类 284
13.4.1 猫种类的判别 284
13.4.2 图像获取的操作 286
13.5 数据的扩充及学习 294
13.5.1 模块的import 294
13.5.2 数据的学习 294
13.5.3 模型的编译 297
13.5.4 运行应用程序 302
13.6 关于Google Cloud Platform