更新时间:2023-08-31 19:17:49
封面
版权信息
内容简介
前言
深度学习图书推荐
第1章 JAX从零开始
1.1 JAX来了
1.1.1 JAX是什么
1.1.2 为什么是JAX
1.2 JAX的安装与使用
1.2.1 Windows Subsystem for Linux的安装
1.2.2 JAX的安装和验证
1.2.3 PyCharm的下载与安装
1.2.4 使用PyCharm和JAX
1.2.5 JAX的Python代码小练习:计算SeLU函数
1.3 JAX实战——MNIST手写体的识别
1.3.1 第一步:准备数据集
1.3.2 第二步:模型的设计
1.3.3 第三步:模型的训练
1.4 本章小结
第2章 一学就会的线性回归、多层感知机与自动微分器
2.1 多层感知机
2.1.1 全连接层—多层感知机的隐藏层
2.1.2 使用JAX实现一个全连接层
2.1.3 更多功能的全连接函数
2.2 JAX实战—鸢尾花分类
2.2.1 鸢尾花数据准备与分析
2.2.2 模型分析—采用线性回归实战鸢尾花分类
2.2.3 基于JAX的线性回归模型的编写
2.2.4 多层感知机与神经网络
2.2.5 基于JAX的激活函数、softmax函数与交叉熵函数
2.2.6 基于多层感知机的鸢尾花分类实战
2.3 自动微分器
2.3.1 什么是微分器
2.3.2 JAX中的自动微分
2.4 本章小结
第3章 深度学习的理论基础
3.1 BP神经网络简介
3.2 BP神经网络两个基础算法详解
3.2.1 最小二乘法详解
3.2.2 道士下山的故事—梯度下降算法
3.2.3 最小二乘法的梯度下降算法以及JAX实现
3.3 反馈神经网络反向传播算法介绍
3.3.1 深度学习基础
3.3.2 链式求导法则
3.3.3 反馈神经网络原理与公式推导
3.3.4 反馈神经网络原理的激活函数
3.3.5 反馈神经网络原理的Python实现
3.4 本章小结
第4章 XLA与JAX一般特性
4.1 JAX与XLA
4.1.1 XLA如何运行
4.1.2 XLA如何工作
4.2 JAX一般特性
4.2.1 利用JIT加快程序运行
4.2.2 自动微分器—grad函数
4.2.3 自动向量化映射—vmap函数
4.3 本章小结
第5章 JAX的高级特性
5.1 JAX与NumPy
5.1.1 像NumPy一样运行的JAX
5.1.2 JAX的底层实现lax
5.1.3 并行化的JIT机制与不适合使用JIT的情景
5.1.4 JIT的参数详解
5.2 JAX程序的编写规范要求
5.2.1 JAX函数必须要为纯函数
5.2.2 JAX中数组的规范操作
5.2.3 JIT中的控制分支
5.2.4 JAX中的if、while、for、scan函数
5.3 本章小结
第6章 JAX的一些细节
6.1 JAX中的数值计算
6.1.1 JAX中的grad函数使用细节
6.1.2 不要编写带有副作用的代码—JAX与NumPy的差异
6.1.3 一个简单的线性回归方程拟合
6.2 JAX中的性能提高
6.2.1 JIT的转换过程
6.2.2 JIT无法对非确定参数追踪
6.2.3 理解JAX中的预编译与缓存
6.3 JAX中的函数自动打包器—vmap
6.3.1 剥洋葱—对数据的手工打包
6.3.2 剥甘蓝—JAX中的自动向量化函数vmap
6.3.3 JAX中高阶导数的处理
6.4 JAX中的结构体保存方法Pytrees
6.4.1 Pytrees是什么
6.4.2 常见的pytree函数
6.4.3 深度学习模型参数的控制(线性模型)
6.4.4 深度学习模型参数的控制(非线性模型)
6.4.5 自定义的Pytree节点
6.4.6 JAX数值计算的运行机制
6.5 本章小结
第7章 JAX中的卷积
7.1 什么是卷积
7.1.1 卷积运算
7.1.2 JAX中的一维卷积与多维卷积的计算
7.1.3 JAX.lax中的一般卷积的计算与表示
7.2 JAX实战—基于VGG架构的MNIST数据集分类
7.2.1 深度学习Visual Geometry Group(VGG)架构
7.2.2 VGG中使用的组件介绍与实现
7.2.3 基于VGG6的MNIST数据集分类实战