/Deep-Learning-Tensorflow2

基于Tensorflow2的深度学习开源书籍

Primary LanguageJupyter Notebook

本书特色:

一.所有公式推导都有详细步骤,并解释每个符号。
二.注释每一行代码。
三. 程序皆为完整程序。本书一共82个代码应用案例,所有的代码都是可以从头到尾运行的完整程序,并附带真实运行结果。
四.一图胜千言。本书一共使用了约500张图片,在本书的创作过程中,大约有200个小时是花在画图以及思考如何画图上。
五.逻辑结构清晰,讲解细致。
本书介绍视频:https://www.bilibili.com/video/BV19A411n7Fn

免费人工智能慕课平台AI MOOC

AI MOOC是我自己创办的一个免费的人工智能慕课平台,网站地址为https://mooc.ai-xlab.com。以后我会在上面不断更新最新的人工智能课程。我的目标是让所有人都能有机会学习到最前沿最好的人工智能课程。 如果大家觉得我创作的内容不错,可以帮我多多宣传,感谢。

书籍和资料百度云下载地址

链接:https://pan.baidu.com/s/1xAH1FxAv9r4W8gfXDoiyRw 密码:xrt7

免费人工智能技术交流QQ群:

人工智能与深度学习:616043628

本书目录

前言
第1章 深度学习背景介绍
 1.1 人工智能
 1.2 机器学习
  1.2.1 训练数据,验证数据和测试数据
  1.2.2 学习方式
  1.2.3 机器学习常用算法
 1.3 人工智能,机器学习,神经网络以及深度学习之间的关系
 1.4 深度学习应用
 1.5 神经网络深度学习发展史
  1.5.1 神经网络诞生-20时间40-60年代
  1.5.2 神经网络复兴-20时间80-90年代
  1.5.3 深度学习-2006年至今
 1.6 深度学习领域重要人物
 1.7 新一轮人工智能爆发的三要素

第2章 搭建Python编程环境
 2.1 Python介绍
 2.2 Anaconda安装
 2.3 Jupyter Notebook的简单使用
  2.3.1 启动Jupyter Notebook
  2.3.2 修改Jupyter Notebook默认启动路径
  2.3.3 Jupyter Notebook浏览器无法打开
  2.3.4 Jupyter Notebook基本操作

第3章 单层感知器与线性神经网络
 3.1 生物神经网络
 3.2 单层感知器
  3.2.1 单层感知器介绍
  3.2.2 单层感知器计算举例
  3.2.3 单层感知器的另一种表达形式
 3.3 单层感知器的学习规则
  3.3.1 单层感知器的学习规则介绍
  3.3.2 单层感知器的学习规则计算举例
 3.4 学习率
 3.5 模型的收敛条件
 3.6 模型的超参数和参数的区别
 3.7 单层感知器分类案例
 3.8 线性神经网络
  3.8.1 线性神经网络介绍
  3.8.2 线性神经网络分类案例
 3.9 线性神经网络处理异或问题

第4章 单层感知器与线性神经网络
 4.1 BP神经网络介绍及发展背景
 4.2 代价函数
 4.3 梯度下降法
  4.3.1 梯度下降法(Gradient Descent)介绍
  4.3.2 梯度下降法(Gradient Descent)二维例子
  4.3.3 梯度下降法(Gradient Descent)三维例子
 4.4 Delta学习规则
 4.5 常用激活函数讲解
  4.5.1 Sigmoid函数
  4.5.2 Tanh函数
  4.5.3 Softsign函数
  4.5.4 ReLU函数
 4.6 BP网络模型和公式推导
  4.6.1 BP网络模型
  4.6.2 BP算法推导
  4.6.3 BP算法推导补充说明
 4.7 BP算法推导结论总结
 4.8 梯度消失与梯度爆炸
  4.8.1 梯度消失
  4.8.2 梯度爆炸
  4.8.3 使用ReLU函数解决梯度消失和梯度爆炸的问题
 4.9 使用BP神经网络解决异或问题
 4.10 分类模型评估方法
  4.10.1 准确率/精确率/召回率/F1值
  4.10.2 混淆矩阵
 4.11 独热编码(One-Hot Encoding)
 4.12 BP神经网络完成手写数字识别
 4.13 Sklearn手写数字识别

第5章 深度学习框架Tensorflow基础使用
 5.1 Tensorflow介绍
  5.1.1 Tensorflow简介
  5.1.2 静态图和动态图机制Eager Execution
  5.1.3 tf.keras
 5.2 Tensorflow-cpu安装
  5.2.1 Tensorflow-cpu在线安装
  5.2.2 安装过程中可能遇到的问题汇总
  5.2.3 Tensorflow-cpu卸载
  5.2.4 Tensorflow-cpu更新
  5.2.5 Tensorflow-cpu指定版本的安装
 5.3 Tensorflow-gpu安装
  5.3.1 Tensorflow-gpu了解最新版本情况
  5.3.2 Tensorflow-gpu安装CUDA
  5.3.3 Tensorflow-gpu安装cuDNN库
  5.3.4 Tensorflow-gpu在线安装
  5.3.5 Tensorflow-gpu卸载
  5.3.6 Tensorflow-gpu更新
 5.4 Tensorflow基本概念
 5.5 Tensorflow基础使用
  5.5.1 TF1转TF2工具
  5.5.2 Tensorflow基本操作
  5.5.3 拟合线性函数
  5.5.4 拟合非线性函数
 5.6 手写数字图片分类任务
  5.6.1 MNIST数据集介绍
  5.6.2 Softmax函数介绍
  5.6.3 简单MNIST数据集分类模型-没有高级封装
  5.6.4 简单MNIST数据集分类模型-keras高级封装

第6章 网络优化方法
 6.1 交叉熵代价函数
  6.1.1 均方差代价函数的缺点
  6.1.2 引入交叉熵代价函数
  6.1.3 交叉熵代价函数推导过程
  6.1.4 Softmax与对数似然代价函数
  6.1.5 交叉熵程序
 6.2 过拟合(Over-Fitting)
  6.2.1 什么是过拟合
  6.2.2 抵抗过拟合的方法
 6.3 数据增强(Data Augmentation)
 6.4 提前停止训练(Early-Stopping)
 6.5 Dropout
  6.5.1 Dropout介绍
  6.5.2 Dropout程序
 6.6 正则化(Regularization)
  6.6.1 正则化介绍
  6.6.2 正则化程序
 6.7 标签平滑(Label Smoothing)
  6.7.1 标签平滑(Label Smoothing)介绍
  6.7.2 标签平滑(Label Smoothing)程序
 6.8 优化器(Optimizer)
  6.8.1 梯度下降法SGD
  6.8.2 Momentum
  6.8.3 NAG(Nesterov Accelerated Gradient)
  6.8.4 Adagrad
  6.8.5 Adadelta
  6.8.6 RMRprop
  6.8.7 Adam
  6.8.8 优化器程序

第7章 Tensorflow模型的保存和载入
 7.1 交叉熵代价函数
  7.1.1 Keras保存模型
  7.1.2 Keras载入模型
 7.2 SavedModel模型保存和载入
  7.2.1 SavedModel保存模型
  7.2.2 SavedModel载入模型
 7.3 单独保存模型结构
  7.3.1 保存模型结构
  7.3.2 载入模型结构
 7.4 单独保存模型参数
  7.4.1 保存模型参数
  7.4.2 载入模型参数
 7.5 ModelCheckpoint自动保存模型
 7.6 Checkpoint模型保存和载入
  7.6.1 Checkpoint模型保存
  7.6.2 Checkpoint模型载入

第8章 卷积神经网络CNN
 8.1 计算机视觉介绍
  8.1.1 计算机视觉应用介绍
  8.1.2 计算机视觉技术介绍
 8.2 卷积神经网络简介
  8.2.1 BP神经网络存在的问题
  8.2.2 局部感受野和权值共享
 8.3 卷积的具体计算
 8.4 卷积的步长
 8.5 不同的卷积核
 8.6 池化(Pooling)
 8.7 Padding
 8.8 常见的卷积计算总结
  8.8.1 对1张图像进行卷积生成1张特征图
  8.8.2 对1张图像进行卷积生成多张特征图
  8.8.3 对多张图像进行卷积生成1张特征图
  8.8.4 对多张图像进行卷积生成多张特征图
 8.9 经典的卷积神经网络
 8.10 卷积神经网络应用于MNIST数据集分类
 8.11 识别自己写的数字图片
 8.12 CIFAR-10数据集分类

第9章 序列模型
 9.1 序列模型应用
 9.2 循环神经网络RNN
  9.2.1 循环神经网络介绍
  9.2.2 Elman network和Jordan network
 9.3 RNN的不同架构
  9.3.1 一对一架构
  9.3.2 多对一架构
  9.3.3 多对多架构
  9.3.4 一对多架构
  9.3.5 Seq2Seq架构
 9.4 传统RNN的缺点
 9.5 长短时记忆网络LSTM
 9.6 Peephole LSTM和FC-LSTM
  9.6.1 Peephole LSTM介绍
  9.6.2 FC-LSTM介绍
 9.7 其他RNN模型
  9.7.1 门控循环单元GRU
  9.7.2 双向RNN(Bidirectional RNN)
  9.7.3 Stacked Bidirectional RNN
 9.8 LSTM网络应用于MNIST数据集分类

第10章 经典图像识别模型介绍(上)
 10.1 图像数据集ImageNet
  10.1.1 ImageNet介绍
  10.1.2 李飞飞简介
  10.1.3 ImageNet的深远影响
  10.1.4 ImageNet Challenge历年优秀品
 10.2 AlexNet
 10.3 VGGNet
 10.4 GoogleNet
  10.4.1 1×1卷积介绍
  10.4.2 Inception结构
  10.4.3 GoogleNet网络结构
 10.5 Batch Normalization
  10.5.1 Batch Normalization提出背景
  10.5.2 数据标准化(Normalization)
  10.5.3 Batch Normalization模型训练阶段
  10.5.4 Batch Normalization模型预测阶段
  10.5.5 Batch Normalization作用分析
 10.6 ResNet
  10.6.1 ResNet背景介绍
  10.6.2 残差块(Residual Block)介绍
  10.6.3 ResNet网络介绍
  10.6.4 ResNet-V2

第11章 经典图像识别模型介绍(下)
 11.1 Inception模型系列
  11.1.1 Inception-v2/v3优化策略
  11.1.2 Inception-v2/v3模型结构
  11.1.3 Inception-v4和Inception-ResNet介绍
 11.2 ResNeXt
  11.2.1 分组卷积(Group Convolution)介绍
  11.2.2 ResNeXt中的分组卷积
  11.2.3 ResNeXt的网络结构
 11.3 SENet
  11.3.1 SENet介绍
  11.3.2 SENet结果分析

第12章 图像识别项目实战
 12.1 图像数据准备
  12.1.1 数据集介绍
  12.1.2 数据集准备
  12.1.3 切分数据集程序
 12.2 AlexNet图像识别
 12.3 VGGNet图像识别
 12.4 函数式(functional)模型
  12.4.1 函数式(functional)模型介绍
  12.4.2 使用函数式模型进行MNIST图像识别
 12.5 模型可视化plot_model
  12.5.1 使用plot_model进行模型可视化
  12.5.2 plot_model升级版
 12.6 GoolgeNet图像识别
 12.7 Batch Normalization使用
 12.8 ResNet图像识别
 12.9 ResNeXt图像识别
 12.10 SENet图像识别
 12.11 使用预训练模型进行迁移学习
  12.11.1 使用训练好的模型进行图像识别
  12.11.2 使用训练好的模型进行迁移学习
  12.11.3 载入训练好的模型进行预测

第13章 验证码识别项目实战
 13.1 多任务学习介绍
 13.2 验证码数据集生成
 13.3 tf.data介绍
 13.4 使用tf.data完成多任务学习-验证码识别
  13.4.1 使用tf.data完成多任务学习模型训练
  13.4.2 使用tf.data完成多任务学习模型预测
 13.5 使用自定义数据生成器完成验证码识别
  13.5.1 使用自定义数据生成器完成模型训练
  13.5.2 使用自定义数据生成器完成模型预测
 13.6 挑战变长验证码识别
  13.6.1 挑战变长验证码识别模型训练
  13.6.2 挑战变长验证码识别模型预测
 13.7 CTC算法
  13.7.1 CTC算法介绍
  13.7.2 贪心算法(Greedy Search)和集束搜索算法(Beam Search)
  13.7.3 CTC存在的问题
 13.8 CTC算法-验证码识别
  13.8.1 使用CTC算法训练验证码模型
  13.8.2 使用CTC算法训练验证码预测

第14章 自然语言处理NLP发展历程(上)
 14.1 多任务学习介绍
  14.1.1 文本分类/情感分类
  14.1.2 分词标注
  14.1.3 机器翻译
  14.1.4 聊天机器人
  14.1.5 自动摘要
  14.1.6 文章生成
  14.1.7 图片描述
 14.2 从传统语言模型到神经语言模型
  14.2.1 规则模型
  14.2.2 统计语言模型
  14.2.3 词向量(word embedding)
  14.2.4 神经语言模型
 14.3 word2vec
  14.3.1 word2vec介绍
  14.3.2 word2vec模型训练
  14.3.3 word2vec训练trick和可视化效果
 14.4 CNN在NLP领域的使用
 14.5 RNN在NLP领域的使用
  14.5.1 使用RNN进行文本分类
  14.5.2 使用RNN进行中文分词标注
 14.6 Seq2Seq模型在NLP领域的使用
 14.7 Attention机制
  14.7.1 Attention**的介绍
  14.7.2 Bahdanau Attention介绍
  14.7.3 Luong Attention介绍
  14.7.4 谷歌机器翻译系统GNMT介绍
  14.7.5 Attention机制在视觉和语音领域的应用

第15章 自然语言处理NLP发展历程(下)
 15.1 NLP新的开始-Transformer模型
  15.1.1 Transformer模型结构和输入数据介绍
  15.1.2 Self-Attention介绍
  15.1.3 Multi-Head Attention介绍
  15.1.4 Layer Normalization介绍
  15.1.5 Decoder结构介绍
  15.1.6 Decoder中的Multi-Head Attention和模型训练
 15.2 BERT模型
  15.2.1 BERT模型介绍
  15.2.2 BERT模型训练
  15.2.3 BERT模型应用

第16章 NLP任务项目实战
 16.1 Python介绍
  16.1.1 项目数据和模型说明
  16.1.2 一维卷积英语电影评论情感分类程序
 16.2 二维卷积中文微博情感分类项目
 16.3 双向LSTM中文微博情感分类项目
 16.4 堆叠双向LSTM中文分词标注项目
  16.4.1 中文分词标注模型训练
  16.4.2 维特比算法(Viterbi Algorithm)
  16.4.3 中文分词标注模型预测
 16.5 最新的一些激活函数介绍
  16.5.1 Leaky ReLU
  16.5.2 ELU
  16.5.3 SELU
  16.5.4 GELU
  16.5.5 Swish
 16.6 BERT模型简单使用
  16.6.1 安装tf2-bert模块并准备预训练模型
  16.6.2 使用BERT进行文本特征提取
  16.6.3 使用BERT进行完形填空
 16.7 BERT电商用户多情绪判断项目
  16.7.1 项目背景介绍
  16.7.2 模型训练
  16.7.3 模型预测

第17章 音频信号处理
 17.1 深度学习在声音领域的应用介绍
  17.1.1 音频分类
  17.1.2 音频事件检测
  17.1.3 语音识别
  17.1.4 音乐检索
  17.1.5 音乐生成
  17.1.6 语音合成
  17.1.7 语音克隆
 17.2 MFCC和Mel Filter Banks
  17.2.1 音频数据采集
  17.2.2 分帧加窗
  17.2.3 傅里叶变换
  17.2.4 梅尔滤波器(Mel Filter Banks)
  17.2.5 梅尔频率倒谱系数MFCC
 17.3 语音分类项目
  17.3.1 音频处理库librosa介绍
  17.3.2 音频分类项目-模型训练
  17.3.3 音频分类项目-模型预测

第18章 图像风格转换
 18.1 图像风格转换实现原理
  18.1.1 代价函数的定义
  18.1.2 格拉姆矩阵(Gram Matrix)介绍
 18.2 图像风格转换项目实战
 18.3 遮挡图像风格转换项目实战

第19章 生成对抗网络GANs
 19.1 生成对抗网络的应用
  19.1.1 图像生成
  19.1.2 向量空间运算
  19.1.3 改变年龄或美颜
  19.1.4 图像转换
  19.1.5 文本转图像
  19.1.6 超分辨率
  19.1.7 换脸
 19.2 DCGAN介绍
  19.2.1 DCGAN原理
  19.2.2 转置卷积(Transposed Convolution)介绍
  19.2.3 DCGAN模型结构
 19.3 手写数字图像生成

第20章 模型部署
 20.1 Tensorflow Serving环境部署
  20.1.1 安装Docker
  20.1.2 拉取Tensorflow Serving镜像
 20.2 运行客户端和服务器程序
  20.2.1 准备SavedModel模型
  20.2.2 启动Tensorflow Serving服务器程序
  20.2.3 Tensorflow Serving客户端gRPC程序
  20.2.4 Tensorflow Serving客户端REST API程序

专业术语汇总
结束语