深度学习:一起玩转TensorLayer 完整版 页面正常显示
已解决页面倒置问题,可放心阅读,电子书不适合长期观看,如果喜欢本书,请支持正版
本书由TensorLayer创始人领衔,TensorLayer主要开发团队倾力打造而成。内容不仅覆盖了人工神经网络的基本知识,如多层感知器、卷积网络、递归网络及增强学习等,还着重讲解了深度学习的一些新的技术,如生成对抗网络、学习方法和实践经验,配有许多应用及产品的实例。读者可从零开始掌握深度学习技术,以及使用TensorLayer实现的各种应用。
本书以通俗易懂的方式讲解深度学习技术,同时配有实现方法教学,面向深度学习初学者、进阶者,以及希望长期从事深度学习研究和产品开发的深度学习的大学生和工程师。
目录
1 深度学习简介1
1.1 人工智能、机器学习和深度学习. . . . . . . . . . . . . . . . . . . . . . . 1
1.1.1 引言. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.2 人工智能、机器学习和深度学习三者的关系. . . . . . . . . . . . 2
1.2 神经网络. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.1 感知器. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.2 激活函数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2.3 损失函数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.2.4 梯度下降和随机梯度下降. . . . . . . . . . . . . . . . . . . . . . 8
1.2.5 反向传播算法简述. . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.2.6 其他神经网络. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.3 学习方法建议. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.3.1 网络资源. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.3.2 TensorFlow 官方深度学习教程. . . . . . . . . . . . . . . . . . . . 14
1.3.3 开源社区. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.4 TensorLayer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.4.1 深度学习框架概况. . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.4.2 TensorLayer 概括. . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.4.3 实验环境配置. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2 多层感知器19
2.1 McCulloch-Pitts 神经元模型. . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.1.1 人工神经网络到底能干什么?到底在干什么. . . . . . . . . . . . 21
2.1.2 什么是激活函数?什么是偏值. . . . . . . . . . . . . . . . . . . . 22
2.2 感知器. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.2.1 什么是线性分类器. . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.2.2 线性分类器有什么优缺点. . . . . . . . . . . . . . . . . . . . . . 26
2.2.3 感知器实例和异或问题(XOR 问题) . . . . . . . . . . . . . . . 26
2.3 多层感知器. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.4 实现手写数字分类. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.5 过拟合. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.5.1 什么是过拟合. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.5.2 Dropout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.5.3 批规范化. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
2.5.4 L1、L2 和其他正则化方法. . . . . . . . . . . . . . . . . . . . . . 42
2.5.5 Lp 正则化的图形化解释. . . . . . . . . . . . . . . . . . . . . . . 44
2.6 再实现手写数字分类. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2.6.1 数据迭代器. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2.6.2 通过all_drop 启动与关闭Dropout . . . . . . . . . . . . . . . . 47
2.6.3 通过参数共享实现训练测试切换. . . . . . . . . . . . . . . . . . 50
3 自编码器54
3.1 稀疏性. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.2 稀疏自编码器. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
3.3 实现手写数字特征提取. . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
3.4 降噪自编码器. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
3.5 再实现手写数字特征提取. . . . . . . . . . . . . . . . . . . . . . . . . . . 68
3.6 堆栈式自编码器及其实现. . . . . . . . . . . . . . . . . . . . . . . . . . . 72
4 卷积神经网络80
4.1 卷积原理. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
4.1.1 卷积操作. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
4.1.2 张量. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
4.1.3 卷积层. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
4.1.4 池化层. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
4.1.5 全连接层. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
4.2 经典任务. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
4.2.1 图像分类. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
4.2.2 目标检测. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
4.2.3 语义分割. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
4.2.4 实例分割. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
4.3 经典卷积网络. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
4.3.1 LeNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
4.3.2 AlexNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
4.3.3 VGGNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
4.3.4 GoogLeNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
4.3.5 ResNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
4.4 实现手写数字分类. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
4.5 数据增强与规范化. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
4.5.1 数据增强. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
4.5.2 批规范化. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
4.5.3 局部响应归一化. . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
4.6 实现CIFAR10 分类. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
4.6.1 方法1:tl.prepro 做数据增强. . . . . . . . . . . . . . . . . . . . . 108
4.6.2 方法2:TFRecord 做数据增强. . . . . . . . . . . . . . . . . . . . 114
4.7 反卷积神经网络. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
5 词的向量表达121
5.1 目的与原理. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
5.2 Word2Vec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
5.2.1 简介. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
5.2.2 Continuous Bag-Of-Words(CBOW)模型. . . . . . . . . . . . . 124
5.2.3 Skip Gram(SG)模型. . . . . . . . . . . . . . . . . . . . . . . . 129
5.2.4 Hierarchical Softmax . . . . . . . . . . . . . . . . . . . . . . . . . . 132
5.2.5 Negative Sampling . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
5.3 实现Word2Vec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
5.3.1 简介. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
5.3.2 实现. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
5.4 重载预训练矩阵. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
6 递归神经网络148
6.1 为什么需要它. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
6.2 不同的RNNs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
6.2.1 简单递归网络. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
6.2.2 回音网络. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
6.3 长短期记忆. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
6.3.1 LSTM 概括. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
6.3.2 LSTM 详解. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
6.3.3 LSTM 变种. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
6.4 实现生成句子. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
6.4.1 模型简介. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
6.4.2 数据迭代. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
6.4.3 损失函数和更新公式. . . . . . . . . . . . . . . . . . . . . . . . . 164
6.4.4 生成句子及Top K 采样. . . . . . . . . . . . . . . . . . . . . . . . 167
6.4.5 接下来还可以做什么. . . . . . . . . . . . . . . . . . . . . . . . . 169
7 深度增强学习171
7.1 增强学习. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
7.1.1 概述. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
7.1.2 基于价值的增强学习. . . . . . . . . . . . . . . . . . . . . . . . . 173
7.1.3 基于策略的增强学习. . . . . . . . . . . . . . . . . . . . . . . . . 176
7.1.4 基于模型的增强学习. . . . . . . . . . . . . . . . . . . . . . . . . 177
7.2 深度增强学习. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
7.2.1 深度Q 学习. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
7.2.2 深度策略网络. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
7.3 更多参考资料. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
7.3.1 书籍. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
7.3.2 在线课程. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
8 生成对抗网络188
8.1 何为生成对抗网络. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
8.2 深度卷积对抗生成网络. . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
8.3 实现人脸生成. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
8.4 还能做什么. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
9 高级实现技巧202
9.1 与其他框架对接. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
9.1.1 无参数层. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
9.1.2 有参数层. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
9.2 自定义层. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
9.2.1 无参数层. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
9.2.2 有参数层. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
9.3 建立词汇表. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
9.4 补零与序列长度. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
9.5 动态递归神经网络. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
9.6 实用小技巧. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
9.6.1 屏蔽显示. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
9.6.2 参数名字前缀. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
9.6.3 获取特定参数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
9.6.4 获取特定层输出. . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
10 实例一:使用预训练卷积网络214
10.1 高维特征表达. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
10.2 VGG 网络. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
10.3 连接TF-Slim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
11 实例二:图像语义分割及其医学图像应用225
11.1 图像语义分割概述. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
11.1.1 传统图像分割算法简介. . . . . . . . . . . . . . . . . . . . . . . . 227
11.1.2 损失函数与评估指标. . . . . . . . . . . . . . . . . . . . . . . . . 229
11.2 医学图像分割概述. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
11.3 全卷积神经网络和U-Net 网络结构. . . . . . . . . . . . . . . . . . . . . 232
11.4 医学图像应用:实现脑部肿瘤分割. . . . . . . . . . . . . . . . . . . . . 234
11.4.1 数据与数据增强. . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
11.4.2 U-Net 网络. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
11.4.3 损失函数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
11.4.4 开始训练. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
12 实例三:由文本生成图像244
12.1 条件生成对抗网络之GAN-CLS . . . . . . . . . . . . . . . . . . . . . . . 245
12.2 实现句子生成花朵图片. . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
13 实例四:超高分辨率复原260
13.1 什么是超高分辨率复原. . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
13.2 网络结构. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
13.3 联合损失函数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
13.4 训练网络. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
13.5 使用测试. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
14 实例五:文本反垃圾280
14.1 任务场景. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
14.2 网络结构. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
14.3 词的向量表示. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
14.4 Dynamic RNN 分类器. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
14.5 训练网络. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
14.5.1 训练词向量. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
14.5.2 文本的表示. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
14.5.3 训练分类器. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
14.5.4 模型导出. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
14.6 TensorFlow Serving 部署. . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
14.7 客户端调用. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
14.8 其他常用方法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
中英对照表及其缩写309
参考文献316
Embarcadero.Delphi.XE6 激活
如题,用于xe6的激活,大家可以试试,xe6直接激活成功,注意断网
正则表达式工具 Match Tracer
正则表达式用的工具,生成正则表达式,很方便
DockSample
测试用代码
DockBug
怎样解决Dock问题
Sams Windows Presentation Foundation Unleashed 2006英文版 and 2007英文版 and《WPF揭秘》中文版 part 5
内容包括
1.SAMS Windows Presentation Foundation Unleashed 2006
2.SAMS Windows Presentation Foundation Unleashed 2007
3.中文名《WPF揭秘》
4.代码
Sams Windows Presentation Foundation Unleashed 2006英文版 and 2007英文版 and《WPF揭秘》中文版 part 4
内容包括
1.SAMS Windows Presentation Foundation Unleashed 2006
2.SAMS Windows Presentation Foundation Unleashed 2007
3.中文名《WPF揭秘》
4.代码
Sams Windows Presentation Foundation Unleashed 2006英文版 and 2007英文版 and《WPF揭秘》中文版 part 3
内容包括
1.SAMS Windows Presentation Foundation Unleashed 2006
2.SAMS Windows Presentation Foundation Unleashed 2007
3.中文名《WPF揭秘》
4.代码
Sams Windows Presentation Foundation Unleashed 2006 and 2007 and《WPF揭秘》中文版 part 1
内容包括
1.SAMS Windows Presentation Foundation Unleashed 2006
2.SAMS Windows Presentation Foundation Unleashed 2007
3.中文名《WPF揭秘》
4.代码
Sams Windows Presentation Foundation Unleashed 2006英文版 and 2007英文版 and《WPF揭秘》中文版 part 1
内容包括
1.SAMS Windows Presentation Foundation Unleashed 2006
2.SAMS Windows Presentation Foundation Unleashed 2007
3.中文名《WPF揭秘》
4.代码
条形码的识别器(源码)
条形码识别程序
操作环境:本程序可以运行于Microsoft Windows 98/ME/NT/2000/XP下。
分辨率:任何分辨率即可
制作工具:Microsoft Visual C++ 6.0
操作流程:
条形码的生成原理:
条形码的第一数据部分是由 7个数字形成的,其形成的方法详述如下:
n 首先使用 产生和 匹配的字母码,该字母码有6个字母组成,字母限于A和B。产生字母码的列表如下
字母码
0 AAAAAA
1 AABABB
2 AABBAB
3 AABBBA
4 ABAABB
5 ABBAAB
6 ABBBAA
7 ABABAB
8 ABABBA
9 ABBABA
表一 映射表
n 将 和 产生的字母码按位进行搭配,来产生一个数字-字母匹配对。并通过查表来得到 形成的条形码第一数据部分。
将 和C进行搭配,并通过查表得到 形成的条形码的第二数据部分。
该映射表如表二所示:
数字-字母匹配对 二进制信息
0A 0001101
0B 0100111
0C 1110010
1A 0011001
1B 0110011
1C 1100110
2A 0010011
2B 0011011
2C 1101100
3A 0111101
3B 0100001
3C 1000010
4A 0100011
4B 0011101
4C 1011100
5A 0110001
5B 0111001
5C 1001110
6A 0101111
6B 0000101
6C 1010000
7A 0111011
7B 0010001
7C 1000100
8A 0110111
8B 0001001
8C 1001000
9A 0001011
9B 0010111
9C 1110100
表二 数字-字母映射表
n 绘制条形码:通过映射表二得到的二进制数码进行绘制,1对应黑线,0对应白线。