本书包括13章内容,包括Tensorflow基础篇、卷积神经网络篇、Tensorflow进阶篇以及卷积神经网络实战篇。第1章是绪论,介绍人工智能发展史和Tensorflow库安装。第2章介绍Tensorflow基础入门,让读者能使用Tensorflow基础函数。第3章介绍高维Tensor对象的常用函数,让读者进一步熟悉抽象的高维Tensor对象。第4章介绍前馈网络,卷积神经网络是由本章中介绍的神经元组成的。第5章介绍常见网络,介绍现代先进的网络设计。第6章介绍Tensorflow对数据的存取操作,第7章介绍Tensorflow对数据预处理,实现对训练集的动态扩充。第8章介绍Tensorflow中模型训练,动手训练模型。第9章介绍Tensorboard可视化工具,监控训练期间参数变化。第10章开始实战项目,实现手写中文字识别。第11章介绍Tensorflow模型移植到服务器端,第12章介绍Tensorflow模型移植到Android端,第13章介绍Tensorflow模型移植到iOS端。
内容全:包含高维Tensor函数、CNN算法及TensorFlow实战等众多知识
看得懂:透过110多张图示,让你快速理解算法原理
学得会:配有40多个视频课程,随时随地轻松学
用得着:包括中文手写字识别、服务器移植、iOS移植及Android移植4个案例
有人帮:在读者交流QQ群里交流互动,有问必答
华超,毕业于武汉大学,硕士研究生,目前任职腾讯研究员,擅长深度卷积神经网络领域。拥有8年的开发经验,熟悉Android和iOS开发。研究领域为神经网络模型压缩和移动端模型移植,使移动端能实时运行神经网络模型,已为移动端上线多款实时运行模型。
前言
深度学习在计算机视觉领域取得的巨大成功,使得越来越多的开发人员准备或者正在转入这个领域。不过这方面大部分的网络资源都是从理论方面讲解卷积神经网络中网络层(如卷积、反卷积等)原理的,很少以简单例子并通过代码实现的方式介绍。初学者希望能快速理解抽象的理论原理,亲自动手设计网络结构并能完成模型的训练;有一定基础的人员希望能够对网络层节点原理有进一步理解。本书从最基础的内容出发,将实际项目中卷积神经网络用到的大部分函数和原理进行讲解并实践。
初入卷积神经网络领域的人员对高维数组(Tensor)的相关维度计算操作难以理解,阅读理论原理后也是一知半解。本书从TensorFlow基础开始讲解,再介绍卷积神经网络,然后介绍TensorFlow的进阶内容。在每一个知识点后均会附加示例代码以加深理解,最后以实际项目“中文手写字识别”对整本书内容进行综合运用。不管是初学者还是有一定经验的深度卷积神经网络开发人员,相信在阅读完本书后一定会收获颇丰。
因受作者水平和成书时间所限,书中难免存有疏漏之处,敬请广大读者批评指正。
本书特色
1. 内容由浅入深,TensorFlow的使用从基础到进阶
本书内容包含TensorFlow训练模型期间所用到的大部分函数和场景,也包括通过实例详细讲解的TensorFlow函数和模型训练技巧,这些都是笔者在实际项目中经验的提炼。
2. 手写代码实现卷积、反卷积等操作,让抽象的理论更容易理解
本书介绍了卷积神经网络中所使用到的大部分计算节点,并使用Python代码实现其等价算法。大部分关于卷积神经网络的资料介绍都过于抽象,往往使得读者一知半解。本书从实际代码搭配实际数据例子的角度介绍卷积神经网络,使卷积神经网络简单化、具体化,让读者更容易理解掌握。
3. 手写代码实现当前先进的卷积神经网络
大部分官方提供的现代先进的卷积神经网络结构源码封装太深,初学者往往需要花费很长时间理解。本书以简单的代码引导读者动手实现先进的网络结构,帮助读者理解。
4. 实现手写汉字识别,并移植到服务器端和移动端
运用本书知识点,带领读者完成了中文手写字识别模型训练。完成模型训练后最重要的事情是投入平台使用,本书介绍了将模型移植到服务器端、Android端和iOS端的详细操作,基本涵盖所有的实际部署平台。
本书内容及体系结构
本书分为4篇,共13章内容,包括TensorFlow基础篇、卷积神经网络篇、TensorFlow进阶篇及卷积神经网络实战篇。
第1章 绪论
人工智能在自然语言处理和计算机视觉等领域中,都取得了重大突破。本章介绍人工智能发展史和TensorFlow等的安装。
第2章 TensorFlow基础入门
本章涵盖了TensorFlow框架的数值计算的基本使用方法,主要包括TensorFlow中的图的概念,TensorFlow中的Tensor对象,TensorFlow中的常量与变量,TensorFlow中的流程控制,TensorFlow中的位运算及TensorFlow中的字符串处理等基础主题。
第3章 高维Tensor对象的工具函数
对于一维、二维和三维数组我们比较容易理解,但是一旦数据的维度上升到四维甚至更高维度时,往往比较抽象。在本章中,我们学习高维Tensor对象常用的操作函数。
第4章 前馈网络
前馈网络不需要关心梯度和参数更新问题,只需关心输入、输出和当前节点的参数。相比反向传播,前馈网络(也称为前向网络)更容易理解。本章我们介绍前馈网络计算的各个常见网络层原理,以及使用TensorFlow框架实现各个层的方法,并且同时使用Python代码实现。
第5章 常见网络
近年来,卷积神经网络经历了高速发展。相关研究人员开发了一些拥有高效、快速及易收敛等特性的卷积神经网络结构,如MobileNet、ResNet、DenseNet等。本章就来学习这些常用的网络结构,以及这些网络的优势与运用。
第6章 TensorFlow数据存取
本章学习数据的存取方法,包括训练集数据和模型数据的存取。
第7章 TensorFlow数据预处理
在读取图片数据后,通过对图片做随机光线变化、随机裁剪、随机旋转等预处理操作可以扩充训练集。本章学习使用TensorFlow框架中的图像处理函数,以及在TensorFlow框架中调用OpenCV接口的方法。
第8章 TensorFlow模型训练
使用TensorFlow模型训练需要掌握一些常见功能的实现,本章主要介绍在模型训练过程中需要掌握的内容。
第9章 TensorBoard可视化工具
在模型训练过程中,可以借助TensorBoard可视化工具对误差值loss的变化曲线、学习率变化曲线、参数变量变化及图像中间结果等实现可视化监控。本章就来介绍在卷积神经网络中常用的TensorBoard内置功能。
第10章 中文手写字识别
本章以中文手写字识别项目来综合使用前面章节的内容。中文手写字识别也可以看成一个分类问题,即识别出输入图像所属的分类,每一种分类对应一个汉字。
第11章 移植模型到TensorFlow Serving端
本章学习将训练保存的模型转为服务器端可执行的模型,在服务器端部署模型及其代码实现,并且提供一个HTTP服务接口,实现手写字识别。
第12章 移植TensorFlow模型到Android端
本章分别介绍使用TensorFlow Mobile和TensorFlow Lite库将TensorFlow 模型移植到Android端的方法。
第13章 移植TensorFlow模型到iOS端
本章介绍将TensorFlow模型转为CoreML模型,并部署到iOS端使用的方法。
本书读者对象
Python程序员。
卷积神经网络爱好者。
TensorFlow编程人员。
人工智能开发人员。
机器学习相关人员。
图4.9的第一个方块内应该为“1”,书中印刷的是“0”。
“当有“剩余”项时,VALID采用的方式是“丢弃”,所以计算结果的维度为1乘1乘1,得到的结果为……=18”这一句中的算式少了一项‘3乘1’,算式结果不等于18。