第1章 搭建指定的开发环境1
1.1 为什么要使用指定的开发环境1
1.2 硬件准备2
1.2.1 在亚马#租用云GPU服务器2
1.2.2 在腾讯云租用GPU服务器4
1.2.3 在云服务器中开启搭载开发环境的Docker服务8
1.3 软件准备9
1.3.1 在Ubuntu 16.04下配置环境9
1.3.2 在CentOS 7下配置环境12
1.4 参考文献及网页链接12
第2章 温故知新——机器学习基础知识13
2.1 人工智能、机器学习与深度学习13
2.2 训练一个传统的机器学习模型15
2.2.1 第#步,观察数据16
2.2.2 第#步,预览数据17
2.3 数据挖掘与训练模型29
2.3.1 第#步,准备数据29
2.3.2 第#步,挖掘数据特征31
2.3.3 第三步,使用模型37
2.3.4 第四步,代码实战44
2.4 参考文献及网页链接49
第3章 数形结合——图像处理基础知识50
3.1 读取图像文件进行基本操作51
3.1.1 使用python-opencv读取图片51
3.1.2 借助python-opencv进行不同编码格式的转换52
3.1.3 借助python-opencv改变图片尺寸53
3.2 用简单的矩阵操作处理图像53
3.2.1 对图像进行复制与粘贴53
3.2.2 把图像当成矩阵进行处理——二维码转换成矩阵54
3.3 使用OpenCV“抠图”——基于颜色通道以及形态特征59
3.4 基于传统特征的传统图像分类方法64
3.4.1 将图片简化为少数区域并计算每个区域轮廓特征的方向66
3.4.2 将HOG变换运用在所有正负样本中68
3.4.3 训练模型70
3.4.4 将训练好的分类器运用在新的图片中71
3.5 参考文献及网页链接73
第4章 继往开来——使用深度神经网络框架74
4.1 从逻辑回归说起74
4.2 深度学习框架76
4.3 基于反向传播算法的自动求导77
4.4 简单的深度神经网络框架实现80
4.4.1 数据结构部分81
4.4.2 计算图部分83
4.4.3 使用方法85
4.4.4 训练模型86
4.5 参考文献及网页链接89
第5章 排列组合——深度神经网络框架的模型元件90
5.1 常用层92
5.1.1 Dense92
5.1.2 Activation92
5.1.3 Dropout93
5.1.4 Flatten94
5.2 卷积层94
5.2.1 Conv2D94
5.2.2 Cropping2D101
5.2.3 ZeroPadding2D101
5.3 池化层102
5.3.1 MaxPooling2D102
5.3.2 AveragePooling2D102
5.3.3 GlobalAveragePooling2D103
5.4 正则化层与过拟合104
5.5 反卷积层105
5.6 循环层109
5.6.1 SimpleRNN109
5.6.2 LSTM109
5.6.3 GRU110
5.7 参考文献及网页链接110
第6章 少量多次——深度神经网络框架的输入处理112
6.1 批量生成训练数据113
6.2 数据增强115
6.3 参考文献及网页链接117
第7章 愚公移山——深度神经网络框架的模型训练118
7.1 随机梯度下降119
7.2 动量法120
7.3 自适应学习率算法121
7.4 实验案例124
7.5 参考文献及网页链接128
第8章 小试牛刀——使用深度神经网络进行CIFAR-10数据分类129
8.1 上游部分——基于生成器的批量生成输入模块131
8.2 核心部分——用各种零件搭建深度神经网络131
8.3 下游部分——使用凸优化模块训练模型132
8.4 参考文献及网页链接133
第9章 见多识广——使用迁移学习提升准确率134
9.1 猫狗大战1.0——使用卷积神经网络直接进行训练135
9.1.1 导入数据135
9.1.2 可视化137
9.1.3 分割训练集和验证集138
9.1.4 搭建模型140
9.1.5 模型训练141
9.1.6 总结142
9.2 猫狗大战2.0——使用ImageNet数据集预训练模型142
9.2.1 迁移学习142
9.2.2 数据预处理143
9.2.3 搭建模型143
9.2.4 模型可视化144
9.2.5 训练模型145
9.2.6 提交到kaggle评估146
9.3 猫狗大战3.0——使用多种预训练模型组合提升表现146
9.3.1 载入数据集147
9.3.2 使用正确的预处理函数147
9.3.3 搭建特征提取模型并导出特征147
9.3.4 搭建并训练全连接分类器模型148
9.3.5 在测试集上预测149
9.4 融合模型150
9.4.1 获取特征150
9.4.2 数据持久化151
9.4.3 构建模型151
9.4.4 在测试集上预测152
9.5 总结153
9.6 参考文献及网页链接154
第10章 看图识字——使用深度神经网络进行文字识别155
10.1 使用卷积神经网络进行端到端学习155
10.1.1 编写数据生成器157
10.1.2 使用生成器157
10.1.3 构建深度卷积神经网络158
10.1.4 模型可视化158
10.1.5 训练模型160
10.1.6 计算模型总体准确率161
10.1.7 测试模型161
10.1.8 模型总结162
10.2 使用循环神经网络改进模型162
10.2.1 CTC Loss163
10.2.2 模型结构164
10.2.3 模型可视化165
10.2.4 数据生成器167
10.2.5 评估模型168
10.2.6 评估回调169
10.2.7 训练模型169
10.2.8 测试模型171
10.2.9 再次评估模型171
10.2.10 总结173
10.3 识别四则混合运算验证码(初赛)173
10.3.1 问题描述174
10.3.2 数据集探索174
10.3.3 模型结构176
10.3.4 结果可视化181
10.3.5 总结182
10.4 识别四则混合运算验证码(决赛)183
10.4.1 问题描述183
10.4.2 数据集探索184
10.4.3 数据预处理186
10.4.4 模型结构192
10.4.5 生成器195
10.4.6 模型的训练197
10.4.7 预测结果198
10.4.8 模型结果融合199
10.4.9 其他尝试200
10.4.10 小结202
10.5 参考文献及网页链接203
· · · · · · (
收起)