![]()
内容推荐 JAX是一个用于高性能数值计算的Python库,专门为深度学习领域的高性能计算而设计。本书详解JAX框架深度学习的相关知识,配套示例源码、PPT课件、数据集和开发环境。 本书共分为13章,内容包括JAX从零开始,一学就会的线性回归、多层感知机与自动微分器,深度学习的理论基础,XLA与JAX一般特性,JAX的高级特性,JAX的一些细节,JAX中的卷积,JAX与TensorFlow的比较与交互,遵循JAX函数基本规则下的自定义函数,JAX中的高级包。最后给出3个实战案例:使用ResNet完成CIFAR100数据集分类,有趣的词嵌入,生成对抗网络(GAN)。 本书适合JAX框架初学者、深度学习初学者以及深度学习从业人员,也适合作为高等院校和培训机构人工智能相关专业的师生教学参考书。 目录 第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数据集分类实战 7.3 本章小结 第8章 JAX与TensorFlow的比敏与交互 8.1基于TensorFlow的MNIST分类 8.2 TensorFlow与JAX的交互 8.2.1 基于JAX的TensorFlow Datasets数据集分类实战 8.2.2 TensorFlow Datasets数据集库简介 8.3 本章小结 第9章 避循JAX函数基本规则下的自定义函数 9.1 JAX函数的基本规则 9.1.1 使用已有的原语 9.1.2 自定义的JVP以及反向VJP 9.1.3 进阶jax.custom_jvp和jax.custom_vjp函数用法 9.2 Jaxpr解释器的使用 9.2.1 Jaxpr tracer 9.2.2 自定义的可以被Jaxpr跟踪的函数 9.3 JAX维度名称的使用 9.3.1 JAX的维度名称 9.3.2 自定义JAX中的向量Tensor 9.4 本章小结 第10章 JAX中的高级包 10.1 JAX中的包 10.1.1 jax.numpy的使用 10.1.2 jax.nn的使用 10.2 jax.experimental包和jax.example_libraries的使用 10.2.1 jax.experimental.sparse的使用 10.2.2 jax.experimental.optimizers模块的使用 10.2.3 jax.experimental.stax的使用 10.3 本章小结 第11 |