本书以能够搭建自定义神经网络为直接目的,以Python为软件平台,全面介绍了大众化的深度学习框架——TensorFlow的主要功能、使用方法及其在神经网络搭建中的具体应用。全书内容简洁、通俗易懂、紧密联系工程实际,具有良好的可操作性。本书既可作为职业技术学校人工智能相关专业的教材,也可供其他学习Python的初学者使用。
李占仓,毕业于天津大学软件学院,软件工程专业工程硕士,目前为天津职业大学电子信息工程学院计算机大类专业主任,主要从事人工智能学科专业课教学。
项目1 TensorFlow 2开发环境搭建 1
任务1 安装Python 2
任务2 使用Python虚拟环境 6
任务3 安装TensorFlow 2 8
任务4 安装TensorFlow的GPU版本 10
任务5 使用JupyterLab 14
项目2 TensorFlow 2语法基础 16
任务1 使用tf.constant方法创建张量 17
任务2 使用tf.convert_to_tensor方法创建张量 19
任务3 创建全0张量和全1张量 21
任务4 创建符合正态分布的随机张量 23
任务5 创建均匀分布的随机张量 25
任务6 创建序列张量 27
任务7 改变张量中元素的数据类型 29
任务8 随机打乱张量的顺序 31
任务9 获取张量的信息 33
任务10 改变张量的形状 35
任务11 增加张量的维度 37
任务12 删除张量的维度 40
任务13 交换张量的维度 42
任务14 张量的拼接操作 44
任务15 张量的分割操作 46
任务16 张量的堆叠操作 48
任务17 张量的分解操作 50
项目3 TensorFlow进阶 52
任务1 通过索引获取张量的元素 53
任务2 一维张量的切片操作 55
任务3 二维张量的切片操作 57
任务4 使用tf.gather方法提取数据 59
任务5 使用tf.gather_nd方法提取数据 61
任务6 张量的加减乘除运算 63
任务7 张量的幂、指数、对数运算 65
任务8 张量的其他运算 67
任务9 创建Variable对象 70
任务10 使用Variable对象的方法 72
任务11 对一元二次方程自动求导 74
任务12 对多元函数求偏导数 77
任务13 对向量求偏导数 79
项目4 回归分析 81
任务1 在二维空间中绘制散点图 82
任务2 在二维空间中绘制直线 85
任务3 在三维空间中绘制散点图 87
任务4 在三维空间中绘制平面图 90
任务5 根据一元线性回归模型预测房价 93
任务6 根据多元线性回归模型预测房价 99
项目5 梯度下降算法 105
任务1 使用迭代法求解极小值 106
任务2 观察迭代中的振荡 110
任务3 使用斜率自动调节步长 114
任务4 用梯度下降法求极值 117
任务5 用梯度下降法求解一元线性回归 120
任务6 用梯度下降法求解多元线性回归 124
项目6 分类问题 128
任务1 实现Sigmoid函数 129
任务2 实现交叉熵损失函数 135
任务3 计算模型的准确率 141
任务4 使用一元逻辑回归实现商品房分类 143
任务5 对鸢尾花数据集进行可视化输出 148
任务6 使用多元逻辑回归实现鸢尾花分类 152
任务7 实现Softmax函数 157
任务8 实现多分类交叉熵损失函数 161
任务9 实现多分类 163
项目7 人工神经网络基础 167
任务1 感知器算法实现案例 168
任务2 使用tf.keras.metrics.categorical_ crossentropy方法计算交叉熵损失 176
任务3 使用单层神经网络实现鸢尾花的分类 178
任务4 使用多层神经网络实现异或运算结果的分类 186
任务5 使用多层神经网络实现鸢尾花的分类 196
任务6 实现ReLU函数 201
任务7 实现误差反向传播算法 207
项目8 人工神经网络优化 214
任务1 使用小批量梯度下降算法训练模型 215
任务2 使用指数衰减学习率训练模型 220
任务3 通过自定义损失函数求解模型 223
任务4 使用SGD优化器训练模型 226
任务5 使用SGDM优化器训练模型 229
任务6 使用Adagrad优化器训练模型 232
任务7 使用RMSProp优化器训练模型 235
任务8 使用Adam优化器训练模型 238
任务9 使用正则化缓解过拟合 241
项目9 Keras搭建神经网络 246
任务1 使用Sequential搭建神经网络实现鸢尾花分类 247
任务2 使用Model类搭建神经网络实现鸢尾花分类 253
任务3 使用Sequential搭建神经网络实现手写数字识别 256
任务4 使用Sequential搭建神经网络实现Fashion图像分类 259
任务5 自制数据集 262
任务6 Acc和Loss曲线的绘制 265
任务7 保存和加载模型参数 268
任务8 保存和加载整个模型 271
项目10 卷积神经网络 274
任务1 实现单通道图像卷积计算 275
任务2 实现多通道图像卷积计算 279
任务3 实现全零填充 282
任务4 实现批标准化 287
任务5 实现池化 292
任务6 实现舍弃 295
任务7 使用卷积神经网络训练CIFAR-10数据集 297
任务8 LeNet的实现 302
任务9 AlexNet的实现 306
任务10 VGGNet的实现 311
任务11 InceptionNet的实现 318
任务12 ResNet的实现 326