TensorFlow与卷积神经网络从算法入门到项目实战 作者:华超出版时间: 2019年版内容简介 本书从TensorFlow基础讲起,逐步深入TensorFlow进阶实战,最后配合项目实战案例,重点介绍了实用TensorFlow库训练卷积神经网络模型并将模型移植到服务器端、Android端和iOS端的知识。读者不但可以系统地学习TensorFlow库的使用,还能加深对深度卷积神经网络的理解。本书分为4篇,共13章,涵盖的主要内容有人工智能发展历程,TensorFlow基础入门,高维Tensor对象的工具函数,前馈网络,常见网络,TensorFlow数据存取,TensorFlow数据预处理,TensorFlow模型训练,TensorBoard可视化工具,中文手写字识别,移植模型到TensorFlow Serving端,移植TensorFlow模型到Android端,移植TensorFlow模型到iOS端。目录目录第一篇 TensorFlow基础篇第1章 绪论/t21.1 人工智能简介/t21.2 卷积神经网络/t31.3 搭建TensorFlow框架环境/t51.3.1 安装Anaconda/t51.3.2 安装TensorFlow/t7第2章 TensorFlow基础入门/t92.1 第一个TensorFlow程序/t92.1.1 TensorFlow中的hello world/t92.1.2 TensorFlow中的图/t112.1.3 静态图与动态图/t142.2 初识Session/t152.2.1 将Session对象关联Graph对象/t152.2.2 Session参数配置/t172.3 常量与变量/t182.3.1 TensorFlow中的常量/t182.3.2 TensorFlow中的变量/t202.3.3 TensorFlow中的tf.placeholder/t282.4 Tensor对象/t292.4.1 什么是Tensor对象/t292.4.2 Python对象转Tensor对象/t312.4.3 Tensor对象转Python对象/t322.4.4 SparseTensor对象/t342.4.5 强制转换Tensor对象数据类型/t352.5 Operation对象/t372.5.1 什么是Operation对象/t372.5.2 获取并执行Operation对象/t372.6 TensorFlow流程控制/t402.6.1 条件判断tf.cond与tf.where/t402.6.2 TensorFlow比较判断/t432.6.3 TensorFlow逻辑运算/t442.6.4 循环tf.while_loop/t452.7 TensorFlow位运算/t482.7.1 且位运算/t482.7.2 或位运算/t492.7.3 异或位运算/t502.7.4 取反位运算/t512.8 TensorFlow字符串/t522.8.1 字符串的定义与转换/t532.8.2 字符串拆分/t552.8.3 字符串拼接/t56第3章 高维Tensor对象的工具函数/t583.1 重定义Shape/t583.1.1 Reshape原理/t583.1.2 函数tf.reshape/t593.1.3 使用Python实现Reshape/t603.2 维度交换函数/t623.2.1 Transpose原理/t623.2.2 函数tf.transpose/t633.2.3 使用Python实现Transpose/t643.3 维度扩充与消除/t653.3.1 函数tf.expand_dims/t653.3.2 函数tf.squeeze/t663.4 Tensor对象裁剪/t683.4.1 Tensor对象裁剪原理/t683.4.2 函数tf.slice/t693.5 Tensor对象拼接/t703.5.1 Tensor对象拼接原理/t703.5.2 函数tf.concat使用/t713.6 tf.stack与tf.unstack/t723.6.1 函数tf.stack的原理/t723.6.2 函数tf.stack的使用/t733.6.3 函数tf.unstack的使用/t763.7 tf.argmax与tf.argmin/t793.7.1 函数tf.argmax与tf.argmin的原理/t793.7.2 函数tf.argmax与tf.argmin的使用/t79第二篇 卷积神经网络篇第4章 前馈网络/t834.1 卷积/t834.1.1 卷积的原理/t834.1.2 输出宽高与输入、Stride、卷积核及Padding之间的关系/t904.1.3 空洞卷积/t924.1.4 在TensorFlow中使用卷积/t934.1.5 用Python语言实现卷积算法/t954.2 反卷积/t974.2.1 反卷积的原理/t974.2.2 输出宽高与输入、Stride、反卷积核及Padding之间的关系/t1034.2.3 在TensorFlow中使用反卷积/t1054.2.4 用Python语言实现反卷积算法/t1104.3 Batch Normalization/t1134.3.1 Batch Normalization的原理/t1134.3.2 在TensorFlow中使用Batch Normalization/t1144.3.3 用Python语言实现Batch Normalization/t1224.3.4 在TensorFlow中使用Batch Normalization时的注意事项/t1234.4 Instance Normalization/t1254.4.1 Instance Normalization的原理/t1254.4.2 在TensorFlow中使用Instance Normalization/t1264.4.3 用Python语言实现Instance Normalization/t1304.5 全连接层/t1324.5.1 全连接层的原理/t1324.5.2 在TensorFlow中使用全连接层/t1334.5.3 用Python语言实现全连接层/t1344.6 激活函数/t1354.6.1 激活函数的作用/t1354.6.2 Sigmoid函数/t1364.6.3 Tanh函数/t1384.6.4 ReLU函数/t1404.7 池化层/t1424.7.1 池化层的原理/t1424.7.2 在TensorFlow中使用池化层/t1464.7.3 用Python语言实现池化层/t1504.8 Dropout/t1534.8.1 Dropout的作用/t1534.8.2 在TensorFlow中使用Dropout/t154第5章 常见网络/t1565.1 移动端定制卷积神经网络――MobileNet/t1565.1.1 MobileNet的原理与优势/t1565.1.2 在TensorFlow中实现MobileNet卷积/t1585.1.3 用Python语言实现Depthwise卷积/t1645.1.4 MobileNet完整的网络结构/t1675.1.5 MobileNet V2进一步裁剪加速/t1685.2 深度残差网络――ResNet/t1715.2.1 ResNet的结构与优势/t1715.2.2 在TensorFlow中实现ResNet/t1725.2.3 完整的ResNet网络结构/t1755.3 DenseNet/t1765.3.1 DenseNet的结构与优势/t1765.3.2 在TensorFlow中实现DenseNet/t1775.3.3 完整的DenseNet网络结构/t180第三篇 TensorFlow进阶篇第6章 TensorFlow数据存取/t1836.1 队列/t1836.1.1 构建队列/t1836.1.2 Queue、QueueRunner及Coordinator/t1906.1.3 在队列中批量读取数据/t1946.2 文件存取/t2006.2.1 读取文本文件/t2006.2.2 读取定长字节文件/t2026.2.3 读取图片/t2056.3 从CSV文件中读取训练集/t2076.3.1 解析CSV格式文件/t2076.3.2 封装CSV文件读取类/t2096.4 从自定义文本格式文件中读取训练集/t2106.4.1 解析自定义文本格式文件/t2116.4.2 封装自定义文本格式文件读取类/t2126.5 TFRecord方式存取数据/t2136.5.1 将数据写入TFRecord文件/t2146.5.2 从TFRecord文件中读取数据/t2156.6 模型存取/t2176.6.1 存储模型/t2176.6.2 从checkpoint文件中加载模型/t2206.6.3 从meta文件中加载模型/t2226.6.4 将模型导出为单个pb文件/t223第7章 TensorFlow数据预处理/t2267.1 随机光照变化/t2267.1.1 随机饱和度变化/t2267.1.2 随机色相变化/t2287.1.3 随机对比度变化/t2307.1.4 随机亮度变化/t2327.1.5 随机伽玛变化/t2347.2 翻转、转置与旋转/t2377.2.1 随机上下、左右翻转/t2377.2.2 随机图像转置/t2397.2.3 随机旋转/t2417.3 裁剪与Resize/t2457.3.1 图像裁剪/t2457.3.2 图像Resize/t2497.3.3 其他Resize函数/t2547.4 用OpenCV对图像进行动态预处理/t2567.4.1 静态预处理与动态预处理/t2567.4.2 在TensorFlow中调用OpenCV/t257第8章 TensorFlow模型训练/t2608.1 反向传播中的优化器与学习率/t2608.1.1 Global Step与Epoch/t2608.1.2 梯度理论/t2608.1.3 使用学习率与梯度下降法求最优值/t2628.1.4 TensorFlow中的优化器/t2658.1.5 优化器中常用的函数/t2658.1.6 在TensorFlow中动态调整学习率/t2698.2 模型数据与参数名称映射/t2738.2.1 通过名称映射加载/t2738.2.2 以pickle文件为中介加载模型/t2758.3 冻结指定参数/t2778.3.1 从模型中加载部分参数/t2778.3.2 指定网络层参数不参与更新/t2788.3.3 两个学习率同时训练/t2808.4 TensorFlow中的命名空间/t2828.4.1 使用tf.variable_scope添加名称前缀/t2828.4.2 使用tf.name_scope添加名称前缀/t2848.4.3 tf.variable_scope与tf.name_scope的混合使用/t2858.5 TensorFlow多GPU训练/t2868.5.1 多GPU训练读取数据/t2868.5.2 平均梯度与参数更新/t289第9章 TensorBoard可视化工具/t2939.1 可视化静态图/t2939.1.1 图结构系列化并写入文件/t2939.1.2 启动TensorBoard/t2949.2 图像显示/t2969.2.1 系列化图像Tensor并写入文件/t2969.2.2 用TensorBoard查看图像/t2999.3 标量曲线/t3019.3.1 系列化标量Tensor并写入文件/t3019.3.2 用TensorBoard查看标量曲线/t3029.4 参数直方图/t3039.4.1 系列化参数Tensor并写入文件/t3039.4.2 用TensorBoard查看参数直方图/t3049.5 文本显示/t3069.5.1 系列化文本Tensor并写入文件/t3069.5.2 用TensorBoard查看文本/t307第四篇 卷积神经网络实战篇第10章 中文手写字识别/t31010.1 网络结构及数据集/t31010.1.1 网络结构/t31010.1.2 数据集/t31110.2 代码实现/t31210.2.1 封装通用网络层/t31210.2.2 定义网络结构/t31410.2.3 数据读取/t31610.2.4 训练代码实现/t31810.3 模型训练/t32110.4 模型精度测试/t32110.4.1 精度测试/t32210.4.2 代码实现/t322第11章 移植模型到TensorFlow Serving端/t32411.1 模型转换/t32411.1.1 转换模型为TensorFlow Serving模型/t32411.1.2 代码实现/t32711.2 模型部署/t32911.2.1 搭建TensorFlow Serving环境/t32911.2.2 启动TensorFlow Serving服务/t33111.3 HTTP服务实现/t33311.3.1 使用gRPC调用TensorFlow Serving服务/t33311.3.2 实现HTTP服务/t33411.4 前端交互实现/t33611.4.1 界面布局/t33611.4.2 手写板实现/t33711.4.3 数据交互/t33911.4.4 流程测试/t340第12章 移植TensorFlow模型到Android端/t34112.1 交互界面/t34112.1.1 页面布局/t34112.1.2 实现手写板/t34212.2 使用TensorFlow Mobile库/t34612.2.1 模型转换/t34712.2.2 模型调用/t34712.2.3 模型测试/t35112.3 使用TensorFlow Lite库/t35412.3.1 模型转换/t35412.3.2 模型调用/t35512.3.3 模型测试/t360第13章 移植TensorFlow模型到iOS端/t36113.1 界面布局/t36113.1.1 页面布局/t36113.1.2 实现手写板/t36213.1.3 界面布局代码实现/t36613.2 TensorFlow 模型转CoreML模型/t36913.2.1 模型转换/t36913.2.2 分析模型对象的调用接口/t37013.3 模型调用/t37313.3.1 实现模型调用/t37313.3.2 模型测试/t376 上一篇: Spring Boot 2+Thymeleaf企业应用实战 杨恩雄 2018年版 下一篇: 代码里的世界观:通往架构师之路 余叶 2019年版