本书主要包括8个项目, 分别为搭建TensorFlow开发环境, 手写数字识别: TensorFlow初探, 波士顿房价预测: 前馈神经网络, 服装图像识别: Keras搭建与训练模型, 图像识别: 卷积神经网络, AI诗人: 循环神经网络, 预测汽车油耗效率: TensorFlow.js应用开发和庆娣花卉识别: TensorFlow Lite。
1.编写主体体现校企双元组合
2.教材内容项目化
3.将“1+X”内容充分融入教材,职业技能标准规范化
人工智能是新一轮科技革命和产业变革的核心驱动力,给我国经济社会带来了极其深远的影响,既为促进经济建设注入了新动能,又为服务社会发展带来了新机遇。2019年,全国有171所高职院校开设了人工智能技术服务专业,为我国人工智能技术的发展提供科技和人才支撑,推动我国人工智能技术迈向新的高度。
深度学习带来了机器学习技术的革命,参与了人类重大的工程挑战,比如自动驾驶、医疗诊断和预测、跨语言的自由交流、更通用的人工智能系统等领域。本书主要介绍基于深度学习的基本概念以及TensorFlow深度学习框架应用开发技术,不仅介绍了深度学习的基础理论和主流的模型及算法(包括神经网络、卷积神经网络、循环神经网络等),而且重点讲解了如何基于TensorFlow框架针对不同的应用场景进行深度学习模型的选择、构建和应用。TensorFlow是Google于 2011 年发布的用于机器学习和深度学习功能的开源框架,在学术、科研和工业领域得到了广泛应用。
本书省略了烦琐的深度学习数学模型的推导,从实际应用问题出发,通过具体的项目介绍如何使用深度学习解决实际问题,主要包括手写数字识别、房价预测、服装图像识别、AI诗人、花卉识别等经典深度学习项目。在项目讲解过程中深入浅出地介绍了TensorFlow常用模块的使用方法,建立和训练模型的方式,在服务器、嵌入式设备和浏览器等平台部署模型的方法。本书包括8个项目,分别为搭建TensorFlow开发环境,手写数字识别:TensorFlow初探,房价预测:前馈神经网络,服装图像识别:Keras搭建与训练模型,图像识别:卷积神经网络,AI诗人:循环神经网络,预测汽车油耗效率:TensorFlow.js应用开发和花卉识别:TensorFlow Lite。
本书的编写理念是“以学生能力提升为本位”,指导原则是“理论以够用为度,技能以实用为本”,编写团队精心设置教学内容,重构知识与技能组织形式,体现案例教学、任务驱动等教学改革成果。本书主要特色与创新如下。
1.编写主体体现校企双元组合
职业教育的课堂教学需要及时反映技术发展的新动态,为了编写出高质量的工作手册式教材,制定合理的编写流程,需明确学校编写人员和企业编写人员的科学分工。企业编写人员将企业案例汇聚到实践项目中,把企业项目转化为教学项目,学校编写人员按照教学规律对技术内容进行适当转化和合理编排,这实质上是人才供需双方在人才培养目标和培养方式上达成共识的过程,也是一种取长补短、优势互补的协同化工作方式。
2.教材内容项目化
按照人工智能专业高素质技能人才必备的素质、知识和能力要求,将这些目标落实在基于真实工作过程的学习性工作任务载体中,围绕“将真实企业项目转化为教学任务,以项目为背景,以知识为主线,以提高能力和兴趣为目的,全面提升技能水平和职业素养”的思路进行教材设计,完整呈现企业典型项目的开发过程。
3.将“1+X”内容充分融入教材,职业技能标准规范化
本书涉及的知识点在“1+X”计算机视觉应用开发职业技能等级证书考核体系中占有相当大的比例,深入研究职业技能等级标准与有关专业教学标准,将证书培训考核知识点有机融入教材内容,推进书证融通、课证融通。积极发挥职业技能等级证书在促进院校人才培养、实施职业技能水平评价等方面的优势。
本书编写团队由江苏省科技创新团队、江苏省青蓝工程优秀教学团队核心成员、国家精品在线开放课程开发团队中的骨干教师组成,包括平震宇、匡亮、沈冠林、朱莹芳、凌路、高云、李涛、李阳、朱二喜。同时,吸收了知名企业一线专家深度参与本书的编写,无锡新思联信息技术有限公司的邓慧斌、徐佳,联合新大陆、澳鹏科技(无锡)有限公司以及瀚云科技有限公司等企业将其项目转化为教学项目。
在本书的编写过程中,得到了江苏信息职业技术学院孙萍、顾晓燕、华驰等老师的大力支持与帮助,他们为本书的编写提出了许多宝贵的意见和建议,在此向他们表示衷心的感谢。
虽然对书中所述内容尽量核实,并进行了多次文字校对,但因时间所限,书中难免有疏漏之处,恳请广大读者批评指正。
前言
二维码资源清单
项目1 搭建TensorFlow开发环境1
项目描述1
思维导图1
项目目标1
1.1 人工智能、机器学习与深度学习2
1.1.1 人工智能2
1.1.2 机器学习2
1.1.3 深度学习4
1.2 深度学习简介5
1.2.1 深度学习发展简史5
1.2.2 深度学习的工作原理7
1.2.3 深度学习的应用9
1.3 任务1:认识深度学习框架13
1.3.1 TensorFlow13
1.3.2 Keras14
1.3.3 PyTorch14
1.3.4 Caffe15
1.3.5 MXNet15
1.3.6 PaddlePaddle16
1.4 任务2:搭建深度学习开发环境17
1.4.1 安装Anaconda17
1.4.2 使用Conda管理环境20
1.4.3 安装TensorFlow21
1.4.4 常用编辑器22
拓展项目24
项目2 手写数字识别:TensorFlow初探26
项目描述26
思维导图26
项目目标26
2.1 TensorFlow架构27
2.1.1 TensorFlow架构图27
2.1.2 TensorFlow 1.x和2.0之间的差异28
2.1.3 TensorFlow数据流图29
2.1.4 TensorFlow运行机制31
2.2 任务1:张量的基本操作32
2.2.1 张量的阶、形状、数据类型32
2.2.2 现实世界中的数据张量35
2.2.3 MNIST数据集39
2.2.4 索引与切片43
2.2.5 维度变换47
2.2.6 广播机制51
2.3 任务2:张量的进阶操作54
2.3.1 合并与分割54
2.3.2 大值、小值、均值、和58
2.3.3 张量比较60
2.3.4 张量排序63
2.3.5 张量中提取数值64
拓展项目65
项目3 房价预测:前馈神经网络67
项目描述67
思维导图67
项目目标67
3.1 任务1:实现一元线性回归模型68
3.1.1 准备数据69
3.1.2 构建模型69
3.1.3 迭代训练70
3.1.4 保存和读取模型71
3.2 认识神经网络72
3.2.1 神经元72
3.2.2 激活函数74
3.3 任务2:房价预测78
3.3.1 准备数据集79
3.3.2 构建模型81
3.3.3 训练模型83
3.4 前馈神经网络87
3.4.1 前馈神经网络拓扑结构87
3.4.2 损失函数89
3.4.3 反向传播算法92
3.4.4 梯度下降算法95
拓展项目100
项目4 服装图像识别:Keras搭建与训练模型102
项目描述102
思维导图102
项目目标102
4.1 认识tf.keras103
4.1.1 Keras与tf.keras103
4.1.2 层(Layer)104
4.1.3 模型(Model)106
4.2 任务1:服装图像识别108
4.2.1 构建模型108
4.2.2 训练模型111
4.2.3 评估模型115
4.3 任务2:保存与加载模型116
4.3.1 SavedModel方式保存模型117
4.3.2 H5格式保存模型118
4.3.3 检查点(Checkpoint)格式保存模型119
4.4 任务3:tf.data优化训练数据120
4.4.1 训练数据输入模型的方法120
4.4.2 tf.data API121
4.4.3 tf.data.Dataset122
4.5 任务4:花卉识别125
4.5.1 下载图片125
4.5.2 构建花卉数据集127
4.5.3 构建与训练模型129
4.5.4 保存与加载模型130
拓展项目131
项目5 图像识别:卷积神经网络132
项目描述132
思维导图132
项目目标132
5.1 认识卷积神经网络133
5.1.1 卷积神经网络发展历史133
5.1.2 全连接神经网络的问题134
5.2 卷积神经网络基本结构135
5.2.1 卷积运算135
5.2.2 填充136
5.2.3 步长137
5.2.4 多输入通道和多输出通道138
5.2.5 池化层139
5.3 TensorFlow对卷积神经网络的支持140
5.3.1 卷积函数141
5.3.2 池化函数144
5.4 任务1:识别CIFAR-10图像145
5.4.1 卷积网络的整体结构145
5.4.2 CIFAR-10数据集146
5.4.3 构造卷积神经网络模型148
5.4.4 编译、训练并评估模型149
5.5 任务2:搭建经典卷积网络150
5.5.1 图像识别的难题151
5.5.2 AlexNet152
5.5.3 VGG系列154
5.5.4 ResNet156
5.6 任务3:ResNet实现图像识别158
5.6.1 ResNet模型结构158
5.6.2 BasicBlock类159
5.6.3 搭建ResNet网络模型160
5.6.4 加载数据集并训练模型162
拓展项目163
项目6 AI诗人:循环神经网络164
项目描述164
思维导图164
项目目标164
6.1 认识循环神经网络165
6.1.1 循环神经网络发展历史165
6.1.2 循环神经网络的应用166
6.1.3 循环神经网络的作用166
6.2 任务1:电影评论分类167
6.2.1 IMDb数据集167
6.2.2 使用全连接神经网络169
6.2.3 循环神经网络典型结构170
6.2.4 SimpleRNNCell使用方法171
6.2.5 RNN分类IMDb数据集173
6.2.6 RNN梯度消失176
6.3 任务2:AI诗人176
6.3.1 长短期记忆(LSTM)176
6.3.2 文本生成:AI诗人178
拓展项目184
项目7 预测汽车油耗效率:TensorFlow.js应用开发186
项目描述186
思维导图186
项目目标186
7.1 认识TensorFlow.js187
7.1.1 TensorFlow.js的优点187
7.1.2 TensorFlow.js 的核心概念188
7.1.3 TensorFlow.js 环境配置190
7.2 任务1:预测汽车油耗效率193
7.2.1 创建主页并加载数据194
7.2.2 定义模型结构196
7.2.3 数据预处理196
7.2.4 训练与测试模型197
7.3 任务2:手写数字识别200
7.3.1 从GitHub获取源码并运行200
7.3.2 创建相关文件201
7.3.3 定义模型结构203
7.3.4 训练模型206
7.3.5 使用模型进行评估与预测208
拓展项目210
项目8 花卉识别:TensorFlow Lite211
项目描述211
思维导图211
项目目标211
8.1 认识TensorFlow Lite212
8.1.1 TensorFlow Lite发展历史212
8.1.2 TensorFlow Lite的应用213
8.2 TensorFlow Lite体系结构213
8.2.1 TensorFlow Lite整体架构213
8.2.2 TensorFlow Lite转换器214
8.2.3 FlatBuffers格式215
8.2.4 TensorFlow Lite解释执行器215
8.3 任务1:TensorFlow Lite开发工作流程216
8.3.1 选择模型216
8.3.2 模型转换218
8.3.3 模型推理219
8.3.4 优化模型220
8.4 任务2:TensorFlow Lite实现花卉识别220
8.4.1 选择模型221
8.4.2 Android部署226
拓展项目233
参考文献 234