【赠书】《深度学习之TensorFlow工程化项目实战》

《【赠书】《深度学习之TensorFlow工程化项目实战》》
《【赠书】《深度学习之TensorFlow工程化项目实战》》

周末联合博文视点做个新书活动,送5本价值159元的《深度学习之TensorFlow工程化项目实战》,规则和之前一样,直接抽,公众号后台回复「读书」, 弹出抽奖小程序后点击参与,开奖时间是后天晚上8点,也就是6月18日周二20点开奖。中奖用户必须是AINLP公众号粉丝,否则视为自动放弃,请中奖的同学添加微信号 “AINLP2” ,再确认一下快递信息,过期不候。最后感谢本次活动的赞助者「博文视点」

《【赠书】《深度学习之TensorFlow工程化项目实战》》

以下是《深度学习之TensorFlow工程化项目实战》的相关介绍:

这是一本非常全面的、专注于实战的AI图书,兼容TensorFlow 1.x和2.x版本,共75个实例。
本书结构清晰、案例丰富、通俗易懂、实用性强。适合对人工智能、TensorFlow感兴趣的读者作为自学教程。另外,本书也适合社会培训学校作为培训教材,还适合大中专院校的相关专业作为教学参考书。

以下是本书的详细目录:
=====1篇 准备=====
1章 学习准备/2
∣1.1 TensorFlow能做什么/2
∣1.2 学习TensorFlow的知识/3
∣1.3 学习技巧:跟读代码/4
∣1.4 如何学习本书/4

2章 搭建开发环境/5
2.1 准备硬件环境/5
2.2 下载及安装Anaconda/6
2.3 安装TensorFlow/9
2.4 GPU版本的安装方法/10
∣2.4.1 在Windows中安装CUDA/10
∣2.4.2 在Linux中安装CUDA/13
∣2.4.3 在Windows中安装cuDNN/13
∣2.4.4 在Linux中安装cuDNN/14
∣2.4.5 常见错误及解决方案/16
2.5 测试显卡的常用命令/16
2.6 TensorFlow 1.x版本与2.x版本共存的解决方案/18

3章 实例1:用AI模型识别图像是桌子、猫、狗,还是其他/21
3.1 准备代码环境并预训练模型/21
3.2 代码实现:初始化环境变量,并载入ImgNet标签/24
3.3 代码实现:定义网络结构/25
3.4 代码实现:载入模型进行识别/26
3.5 扩展:用更多预训练模型完成图片分类任务/28

===== 2篇 基础

4章 用TensorFlow制作自己的数据集/30
4.1 快速导读/30
∣4.1.1 什么是数据集/30
∣4.1.2 TensorFlow的框架/31
∣4.1.3 什么是TFDS/31
4.2 实例2:将模拟数据制作成内存对象数据集/32
∣4.2.1 代码实现:生成模拟数据/32
∣4.2.2 代码实现:定义占位符/33
∣4.2.3 代码实现:建立会话,并获取显数据/34
∣4.2.4 代码实现:模拟数据可视化/34
∣4.2.5 运行程序/34
∣4.2.6 代码实现:创建带有迭代值并支持乱序功能的模拟数据集/35
4.3 实例3:将图片制作成内存对象数据集/37
∣4.3.1 样本介绍/38
∣4.3.2 代码实现:载入文件名称与标签/39
∣4.3.3 代码实现:生成队列中的批次样本数据/40
∣4.3.4 代码实现:在会话中使用数据集/41
∣4.3.5 运行程序/42
4.4 实例4:将Excel文件制作成内存对象数据集/42
∣4.4.1 样本介绍/43
∣4.4.2 代码实现:逐行读取数据并分离标签/43
∣4.4.3 代码实现:生成队列中的批次样本数据/44
∣4.4.4 代码实现:在会话中使用数据集/45
∣4.4.5 运行程序/46
4.5 实例5:将图片文件制作成TFRecord数据集/46
∣4.5.1 样本介绍/47
∣4.5.2 代码实现:读取样本文件的目录及标签/47
∣4.5.3 代码实现:定义函数生成TFRecord数据集/48
∣4.5.4 代码实现:读取TFRecord数据集,并将其转化为队列/49
∣4.5.5 代码实现:建立会话,将数据保存到文件/50
∣4.5.6 运行程序/51
4.6 实例6:将内存对象制作成Dataset数据集/52
∣4.6.1 如何生成Dataset数据集/52
∣4.6.2 如何使用Dataset接口/53
∣4.6.3 tf.data.Dataset接口所支持的数据集变换操作/54
∣4.6.4 代码实现:以元组和字典的方式生成Dataset对象/58
∣4.6.5 代码实现:对Dataset对象中的样本进行变换操作/59
∣4.6.6 代码实现:创建Dataset迭代器/60
∣4.6.7 代码实现:在会话中取出数据/60
∣4.6.8 运行程序/61
∣4.6.9 使用tf.data.Dataset.from_tensor_slices接口的注意事项/62
4.7 实例7:将图片文件制作成Dataset数据集/63
∣4.7.1 代码实现:读取样本文件的目录及标签/64
∣4.7.2 代码实现:定义函数,实现图片转换操作/64
∣4.7.3 代码实现:用自定义函数实现图片归一化/65
∣4.7.4 代码实现:用三方函数将图片旋转30°/65
∣4.7.5 代码实现:定义函数,生成Dataset对象/66
∣4.7.6 代码实现:建立会话,输出数据/67
∣4.7.7 运行程序/68
4.8 实例8:将TFRecord文件制作成Dataset数据集/69
∣4.8.1 样本介绍/69
∣4.8.2 代码实现:定义函数,生成Dataset对象/70
∣4.8.3 代码实现:建立会话输出数据/71
∣4.8.4 运行程序/72
4.9 实例9:在动态图中读取Dataset数据集/72
∣4.9.1 代码实现:添加动态图调用/72
∣4.9.2 制作数据集/73
∣4.9.3 代码实现:在动态图中显示数据/73
∣4.9.4 扩展示例10:在TensorFlow 2.x中操作数据集/74
4.10 实例11:在不同场景中使用数据集/77
∣4.10.1 代码实现:在训练场景中使用数据集/78
∣4.10.2 代码实现:在应用模型场景中使用数据集/79
∣4.10.3 代码实现:在训练与测试混合场景中使用数据集/80
4.11 tf.data.Dataset接口的更多应用/81

5章 10分钟快速训练自己的图片分类模型/82
5.1 快速导读/82
∣5.1.1 认识模型和模型检查点文件/82
∣5.1.2 了解“预训练模型”与微调(Fine-Tune)/82
∣5.1.3 学习TensorFlow中的预训练模型库——TF-Hub库/83
5.2 实例12:通过微调模型分辨男女/83
∣5.2.1 准备工作/84
∣5.2.2 代码实现:处理样本数据并生成Dataset对象/85
∣5.2.3 代码实现:定义微调模型的类MyNASNetModel/88
∣5.2.4 代码实现:构建MyNASNetModel类中的基本模型/88
∣5.2.5 代码实现:实现MyNASNetModel类中的微调操作/89
∣5.2.6 代码实现:实现与训练相关的其他方法/90
∣5.2.7 代码实现:构建模型,用于训练、测试、使用/92
∣5.2.8 代码实现:通过二次迭代来训练微调模型/94
∣5.2.9 代码实现:测试模型/96
5.3 扩展:通过摄像头实时分辨男女/100
5.4 TF-slim接口中的更多成熟模型/100
∣5.5 实例13:用TF-Hub库微调模型以评估人物的年龄/100
∣5.5.1 准备样本/101
∣5.5.2 下载TF-Hub库中的模型/102
∣5.5.3 代码实现:测试TF-Hub库中的MobileNet_V2模型/104
∣5.5.4 用TF-Hub库微调MobileNet_V2模型/107
∣5.5.5 代码实现:用模型评估人物的年龄/109
∣5.5.6 扩展:用TF-Hub库中的其他模型实现不同领域的分类任务/113
∣5.6 总结/113
∣5.7 练习题/114
∣5.7.1 基于TF-slim接口的练习/115
∣5.7.2 基于TF-Hub库的练习/115

6章 用TensorFlow编写训练模型的程序/117
6.1 快速导读/117
∣6.1.1 训练模型是怎么一回事/117
∣6.1.2 用“静态图”方式训练模型/117
∣6.1.3 用“动态图”方式训练模型/118
∣6.1.4 什么是估算器框架接口(Estimators API)/119
∣6.1.5 什么是tf.layers接口/120
∣6.1.6 什么是tf.keras接口/121
∣6.1.7 什么是tf.js接口/122
∣6.1.8 什么是TFLearn框架/123
∣6.1.9 该选择哪种框架/123
∣6.1.10 分配运算资源与使用分布策略/124
∣6.1.11 用tfdbg调试TensorFlow模型/127
∣6.1.12 用钩子函数(Training_Hooks)跟踪训练状态/127
∣6.1.13 用分布式运行方式训练模型/128
∣6.1.14 用T2T框架系统更方便地训练模型/128
∣6.1.15 将TensorFlow 1.x中的代码移植到2.x版本/129
∣6.1.16 TensorFlow 2.x中的新特性——自动图/130
6.2 实例14:用静态图训练一个具有保存检查点功能的回归模型/131
∣6.2.1 准备开发步骤/131
∣6.2.2 生成检查点文件/131
∣6.2.3 载入检查点文件/132
∣6.2.4 代码实现:在线性回归模型中加入保存检查点功能/132
∣6.2.5 修改迭代次数,二次训练/135
6.3 实例15:用动态图(eager)训练一个具有保存检查点功能的回归模型/136
∣6.3.1 代码实现:启动动态图,生成模拟数据/136
∣6.3.2 代码实现:定义动态图的网络结构/137
∣6.3.3 代码实现:在动态图中加入保存检查点功能/138
∣6.3.4 代码实现:按指定迭代次数进行训练,并可视化结果/139
∣6.3.5 运行程序,显示结果/140
∣6.3.6 代码实现:用另一种方法计算动态图梯度/141
∣6.3.7 扩展实例16:在动态图中获取参数变量/142
∣6.3.8 小心动态图中的参数陷阱/144
∣6.3.9 扩展实例17:在静态图中使用动态图/145
6.4 实例18:用估算器框架训练一个回归模型/147
∣6.4.1 代码实现:生成样本数据集/147
∣6.4.2 代码实现:设置日志级别/148
∣6.4.3 代码实现:实现估算器的输入函数/148
∣6.4.4 代码实现:定义估算器的模型函数/149
∣6.4.5 代码实现:通过创建config文件指定硬件的运算资源/151
∣6.4.6 代码实现:定义估算器/152
∣6.4.7 用tf.estimator.RunConfig控制更多的训练细节/153
∣6.4.8 代码实现:用估算器训练模型/153
∣6.4.9 代码实现:通过热启动实现模型微调/155
∣6.4.10 代码实现:测试估算器模型/158
∣6.4.11 代码实现:使用估算器模型/158
∣6.4.12 扩展实例19:为估算器添加日志钩子函数/159
6.5 实例20:将估算器代码改写成静态图代码/161
∣6.5.1 代码实现:复制网络结构/161
∣6.5.2 代码实现:重用输入函数/163
∣6.5.3 代码实现:创建会话恢复模型/163
∣6.5.4 代码实现:继续训练/163
6.6 实例21:用tf.layers API在动态图上识别手写数字/165
∣6.6.1 代码实现:启动动态图并加载手写图片数据集/165
∣6.6.2 代码实现:定义模型的类/166
∣6.6.3 代码实现:定义网络的反向传播/167
∣6.6.4 代码实现:训练模型/167
6.7 实例22:用tf.keras API训练一个回归模型/168
∣6.7.1 代码实现:用model类搭建模型/168
∣6.7.2 代码实现:用sequential类搭建模型/169
∣6.7.3 代码实现:搭建反向传播的模型/171
∣6.7.4 代码实现:用两种方法训练模型/172
∣6.7.5 代码实现:获取模型参数/172
∣6.7.6 代码实现:测试模型与用模型进行预测/173
∣6.7.7 代码实现:保存模型与加载模型/173
∣6.7.8 代码实现:将模型导出成JSON文件,再将JSON文件导入模型/175
∣6.7.9 扩展实例23:在tf.keras接口中使用预训练模型ResNet/176
∣6.7.10 扩展:在动态图中使用tf.keras接口/178
∣6.7.11 扩展实例24:在静态图中使用tf.keras接口/178
6.8 实例25:用tf.js接口后方训练一个回归模型/180
∣6.8.1 代码实现:在HTTP的头标签中添加tfjs模块/180
∣6.8.2 代码实现:用JavaScript脚本实现回归模型/181
∣6.8.3 运行程序:在浏览器中查看效果/181
∣6.8.4 扩展:tf.js 接口的应用场景/182
6.9 实例26:用估算器框架实现分布式部署训练/182
∣6.9.1 运行程序:修改估算器模型,使其支持分布式/182
∣6.9.2 通过TF_CONFIG进行分布式配置/183
∣6.9.3 运行程序/185
∣6.9.4 扩展:用分布策略或KubeFlow框架进行分布式部署/186
6.10 实例27:在分布式估算器框架中用tf.keras接口训练ResNet模型,识别图片中是橘子还是苹果/186
∣6.10.1 样本准备/186
∣6.10.2 代码实现:准备训练与测试数据集/187
∣6.10.3 代码实现:制作模型输入函数/187
∣6.10.4 代码实现:搭建ResNet模型/188
∣6.10.5 代码实现:训练分类器模型/189
∣6.10.6 运行程序:评估模型/190
∣6.10.7 扩展:全连接网络的优化/190
6.11 实例28:在T2T框架中用tf.layers接口实现MNIST数据集分类/191
∣6.11.1 代码实现:查看T2T框架中的数据集(problems)/191
∣6.11.2 代码实现:构建T2T框架的工作路径及下载数据集/192
∣6.11.3 代码实现:在T2T框架中搭建自定义卷积网络模型/193
∣6.11.4 代码实现:用动态图方式训练自定义模型/194
∣6.11.5 代码实现:在动态图中用metrics模块评估模型/195
6.12 实例29:在T2T框架中,用自定义数据集训练中英文翻译模型/196
∣6.12.1 代码实现:声明自己的problems数据集/196
∣6.12.2 代码实现:定义自己的problems数据集/197
∣6.12.3 在命令行下生成tfrecoder格式的数据/198
∣6.12.4 查找T2T框架中的模型及参,并用指定的模型及参进行训练/199
∣6.12.5 用训练好的T2T框架模型进行预测/201
∣6.12.6 扩展:在T2T框架中,如何选取合适的模型及参/202
6.13 实例30:将TensorFlow 1.x中的代码升级为可用于2.x版本的代码/203
∣6.13.1 准备工作:创建Python虚环境/203
∣6.13.2 使用工具转换源码/204
∣6.13.3 修改转换后的代码文件/204
∣6.13.4 将代码升级到TensorFlow 2.x版本的经验总结/205

3篇 进阶

-7章 特征工程——会说话的数据/208
7.1 快速导读/208
∣7.1.1 特征工程的基础知识/208
∣7.1.2 离散数据特征与连续数据特征/209
∣7.1.3 了解特征列接口/210
∣7.1.4 了解序列特征列接口/210
∣7.1.5 了解弱学习器接口——梯度提升树(TFBT接口)/210
∣7.1.6 了解特征预处理模块(tf.Transform)/211
∣7.1.7 了解因子分解模块/212
∣7.1.8 了解加权矩阵分解算法/212
∣7.1.9 了解Lattice模块——点阵模型/213
∣7.1.10 联合训练与集成学习/214
7.2 实例31:用wide_deep模型预测人口收入/214
∣7.2.1 了解人口收入数据集/214
∣7.2.2 代码实现:探索性数据分析/217
∣7.2.3 认识wide_deep模型/218
∣7.2.4 部署代码文件/219
∣7.2.5 代码实现:初始化样本常量/220
∣7.2.6 代码实现:生成特征列/220
∣7.2.7 代码实现:生成估算器模型/222
∣7.2.8 代码实现:定义输入函数/223
∣7.2.9 代码实现:定义用于导出冻结图文件的函数/224
∣7.2.10 代码实现:定义类,解析启动参数/225
∣7.2.11 代码实现:训练和测试模型/226
∣7.2.12 代码实现:使用模型/227
∣7.2.13 运行程序/228
7.3 实例32:用弱学习器中的梯度提升树算法预测人口收入/229
∣7.3.1 代码实现:为梯度提升树模型准备特征列/230
∣7.3.2 代码实现:构建梯度提升树模型/230
∣7.3.3 代码实现:训练并导出梯度提升树模型/231
∣7.3.4 代码实现:设置启动参数,运行程序/232
。。。。。。。。。。。

∣14.4.1 项目背景/737
∣14.4.2 技术方案/738
∣14.4.3 方案缺陷/738
∣14.4.4 工程化补救方案/738
14.5 实例75:智能冰箱产品——硬件成本之痛/739
∣14.5.1 智能冰箱系列的产品背景/739
∣14.5.2 智能冰箱的技术基础/740
∣14.5.3 真实的非功能性需求——低成本/740
∣14.5.4 未来的技术趋势及应对策略/741

    原文作者:Pan Yang
    原文地址: https://zhuanlan.zhihu.com/p/69348559
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞