谷歌JAX深度学习从零开始学

谷歌JAX深度学习从零开始学
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者:
2022-06
版次: 1
ISBN: 9787302604365
定价: 79.00
装帧: 其他
开本: 16开
纸张: 胶版纸
3人买过
  • JAX是一个用于高性能数值计算的Python库,专门为深度学习领域的高性能计算而设计。本书详解JAX框架深度学习的相关知识,配套示例源码、PPT课件、数据集和开发环境。 本书共分为13章,内容包括JAX从零开始,一学就会的线性回归、多层感知机与自动微分器,深度学习的理论基础,XLA与JAX一般特性,JAX的高级特性,JAX的一些细节,JAX中的卷积,JAX与TensorFlow的比较与交互,遵循JAX函数基本规则下的自定义函数,JAX中的高级包。后给出3个实战案例:使用ResNet完成CIFAR100数据集分类,有趣的词嵌入,生成对抗网络(GAN)。 本书适合JAX框架初学者、深度学习初学者以及深度学习从业人员,也适合作为高等院校和培训机构人工智能相关专业的师生教学参考书。 王晓华,计算机专业讲师,研究方向为云计算、大数据与人工智能。著有《Spark MLlib机器学习实践》《TensorFlow深度学习应用实践》《OpenCV TensorFlow深度学习与计算机视觉实战》《TensorFlow知识图谱实战》《TensorFlow人脸识别实战》《TensorFlow语音识别实战》《TensorFlow 2.0卷积神经网络实战》《Keras实战:基于TensorFlow2.2的深度学习实践》《TensorFlow深度学习从零开始学》《深度学习的数学原理与实现》等图书。 第 1 章  JAX从零开始 1

    1.1  JAX来了 1

    1.1.1  JAX是什么 1

    1.1.2  为什么是JAX 2

    1.2  JAX的安装与使用 3

    1.2.1  Windows Subsystem for Linux的安装 3

    1.2.2  JAX的安装和验证 7

    1.2.3  PyCharm的下载与安装 8

    1.2.4  使用PyCharm和JAX 9

    1.2.5  JAX的Python代码小练习:计算SeLU函数 11

    1.3  JAX实战—MNIST手写体的识别 12

    1.3.1  第一步:准备数据集 12

    1.3.2  第二步:模型的设计 13

    1.3.3  第三步:模型的训练 13

    1.4  本章小结 15

    第2章  一学就会的线性回归、多层感知机与自动微分器 16

    2.1  多层感知机 16

    2.1.1  全连接层—多层感知机的隐藏层 16

    2.1.2  使用JAX实现一个全连接层 17

    2.1.3  更多功能的全连接函数 19

    2.2  JAX实战—鸢尾花分类 22

    2.2.1  鸢尾花数据准备与分析 23

    2.2.2  模型分析—采用线性回归实战鸢尾花分类 24

    2.2.3  基于JAX的线性回归模型的编写 25

    2.2.4  多层感知机与神经网络 27

    2.2.5  基于JAX的激活函数、softmax函数与交叉熵函数 29

    2.2.6  基于多层感知机的鸢尾花分类实战 31

    2.3  自动微分器 35

    2.3.1  什么是微分器 36

    2.3.2  JAX中的自动微分 37

    2.4  本章小结 38

    第3章  深度学习的理论基础 39

    3.1  BP神经网络简介 39

    3.2  BP神经网络两个基础算法详解 42

    3.2.1  最小二乘法详解 43

    3.2.2  道士下山的故事—梯度下降算法 44

    3.2.3  最小二乘法的梯度下降算法以及JAX实现 46

    3.3  反馈神经网络反向传播算法介绍 52

    3.3.1  深度学习基础 52

    3.3.2  链式求导法则 53

    3.3.3  反馈神经网络原理与公式推导 54

    3.3.4  反馈神经网络原理的激活函数 59

    3.3.5  反馈神经网络原理的Python实现 60

    3.4  本章小结 64

    第4章  XLA与JAX一般特性 65

    4.1  JAX与XLA 65

    4.1.1  XLA如何运行 65

    4.1.2  XLA如何工作 67

    4.2  JAX一般特性 67

    4.2.1  利用JIT加快程序运行 67

    4.2.2  自动微分器—grad函数 68

    4.2.3  自动向量化映射—vmap函数 70

    4.3  本章小结 71

    第5章  JAX的高级特性 72

    5.1  JAX与NumPy 72

    5.1.1  像NumPy一样运行的JAX 72

    5.1.2  JAX的底层实现lax 74

    5.1.3  并行化的JIT机制与不适合使用JIT的情景 75

    5.1.4  JIT的参数详解 77

    5.2  JAX程序的编写规范要求 78

    5.2.1  JAX函数必须要为纯函数 79

    5.2.2  JAX中数组的规范操作 80

    5.2.3  JIT中的控制分支 83

    5.2.4  JAX中的if、while、for、scan函数 85

    5.3  本章小结 89

    第6章  JAX的一些细节 90

    6.1  JAX中的数值计算 90

    6.1.1  JAX中的grad函数使用细节 90

    6.1.2  不要编写带有副作用的代码—JAX与NumPy的差异 93

    6.1.3  一个简单的线性回归方程拟合 94

    6.2  JAX中的性能提高 98

    6.2.1  JIT的转换过程 98

    6.2.2  JIT无法对非确定参数追踪 100

    6.2.3  理解JAX中的预编译与缓存 102

    6.3  JAX中的函数自动打包器—vmap 102

    6.3.1  剥洋葱—对数据的手工打包 102

    6.3.2  剥甘蓝—JAX中的自动向量化函数vmap 104

    6.3.3  JAX中高阶导数的处理 105

    6.4  JAX中的结构体保存方法Pytrees 106

    6.4.1  Pytrees是什么 106

    6.4.2  常见的pytree函数 107

    6.4.3  深度学习模型参数的控制(线性模型) 108

    6.4.4  深度学习模型参数的控制(非线性模型) 113

    6.4.5  自定义的Pytree节点 113

    6.4.6  JAX数值计算的运行机制 115

    6.5  本章小结 117

    第7章  JAX中的卷积 118

    7.1  什么是卷积 118

    7.1.1  卷积运算 119

    7.1.2  JAX中的一维卷积与多维卷积的计算 120

    7.1.3  JAX.lax中的一般卷积的计算与表示 122

    7.2  JAX实战—基于VGG架构的MNIST数据集分类 124

    7.2.1  深度学习Visual Geometry Group(VGG)架构 124

    7.2.2  VGG中使用的组件介绍与实现 126

    7.2.3  基于VGG6的MNIST数据集分类实战 129

    7.3  本章小结 133

    第8章  JAX与TensorFlow的比较与交互 134

    8.1  基于TensorFlow的MNIST分类 134

    8.2  TensorFlow与JAX的交互 137

    8.2.1  基于JAX的TensorFlow Datasets数据集分类实战 137

    8.2.2  TensorFlow Datasets数据集库简介 141

    8.3  本章小结 145

    第9章  遵循JAX函数基本规则下的自定义函数 146

    9.1  JAX函数的基本规则 146

    9.1.1  使用已有的原语 146

    9.1.2  自定义的JVP以及反向VJP 147

    9.1.3  进阶jax.custom_jvp和jax.custom_vjp函数用法 150

    9.2  Jaxpr解释器的使用 153

    9.2.1  Jaxpr tracer 153

    9.2.2  自定义的可以被Jaxpr跟踪的函数 155

    9.3  JAX维度名称的使用 157

    9.3.1  JAX的维度名称 157

    9.3.2  自定义JAX中的向量Tensor 158

    9.4  本章小结 159

    第10章  JAX中的高级包 160

    10.1  JAX中的包 160

    10.1.1  jax.numpy的使用 161

    10.1.2  jax.nn的使用 162

    10.2  jax.experimental包和jax.example_libraries的使用 163

    10.2.1  jax.experimental.sparse的使用 163

    10.2.2  jax.experimental.optimizers模块的使用 166

    10.2.3  jax.experimental.stax的使用 168

    10.3  本章小结 168

    第11章  JAX实战——使用ResNet完成CIFAR100数据集分类 169

    11.1  ResNet基础原理与程序设计基础 169

    11.1.1  ResNet诞生的背景 170

    11.1.2  使用JAX中实现的部件—不要重复造轮子 173

    11.1.3  一些stax模块中特有的类 175

    11.2  ResNet实战—CIFAR100数据集分类 176

    11.2.1  CIFAR100数据集简介 176

    11.2.2  ResNet残差模块的实现 179

    11.2.3  ResNet网络的实现 181

    11.2.4  使用ResNet对CIFAR100数据集进行分类 182

    11.3  本章小结 184

    第12章  JAX实战—有趣的词嵌入 185

    12.1  文本数据处理 185

    12.1.1  数据集和数据清洗 185

    12.1.2  停用词的使用 188

    12.1.3  词向量训练模型word2vec的使用 190

    12.1.4  文本主题的提取:基于TF-IDF 193

    12.1.5  文本主题的提取:基于TextRank 197

    12.2  更多的词嵌入方法—FastText和预训练词向量 200

    12.2.1  FastText的原理与基础算法 201

    12.2.2  FastText训练以及与JAX的协同使用 202

    12.2.3  使用其他预训练参数嵌入矩阵(中文) 204

    12.3  针对文本的卷积神经网络模型—字符卷积 205

    12.3.1  字符(非单词)文本的处理 206

    12.3.2  卷积神经网络文本分类模型的实现—conv1d(一维卷积) 213

    12.4  针对文本的卷积神经网络模型—词卷积 216

    12.4.1  单词的文本处理 216

    12.4.2  卷积神经网络文本分类模型的实现 218

    12.5  使用卷积对文本分类的补充内容 219

    12.5.1  中文的文本处理 219

    12.5.2  其他细节 222

    12.6  本章小结 222

    第13章  JAX实战—生成对抗网络(GAN) 223

    13.1  GAN的工作原理详解 223

    13.1.1  生成器与判别器共同构成了一个GAN 224

    13.1.2  GAN是怎么工作的 225

    13.2  GAN的数学原理详解 225

    13.2.1  GAN的损失函数 226

    13.2.2  生成器的产生分布的数学原理—相对熵简介 226

    13.3  JAX实战—GAN网络 227

    13.3.1  生成对抗网络GAN的实现 228

    13.3.2  GAN的应用前景 232

    13.4  本章小结 235

    附录  Windows 11安装GPU版本的JAX 236
  • 内容简介:
    JAX是一个用于高性能数值计算的Python库,专门为深度学习领域的高性能计算而设计。本书详解JAX框架深度学习的相关知识,配套示例源码、PPT课件、数据集和开发环境。 本书共分为13章,内容包括JAX从零开始,一学就会的线性回归、多层感知机与自动微分器,深度学习的理论基础,XLA与JAX一般特性,JAX的高级特性,JAX的一些细节,JAX中的卷积,JAX与TensorFlow的比较与交互,遵循JAX函数基本规则下的自定义函数,JAX中的高级包。后给出3个实战案例:使用ResNet完成CIFAR100数据集分类,有趣的词嵌入,生成对抗网络(GAN)。 本书适合JAX框架初学者、深度学习初学者以及深度学习从业人员,也适合作为高等院校和培训机构人工智能相关专业的师生教学参考书。
  • 作者简介:
    王晓华,计算机专业讲师,研究方向为云计算、大数据与人工智能。著有《Spark MLlib机器学习实践》《TensorFlow深度学习应用实践》《OpenCV TensorFlow深度学习与计算机视觉实战》《TensorFlow知识图谱实战》《TensorFlow人脸识别实战》《TensorFlow语音识别实战》《TensorFlow 2.0卷积神经网络实战》《Keras实战:基于TensorFlow2.2的深度学习实践》《TensorFlow深度学习从零开始学》《深度学习的数学原理与实现》等图书。
  • 目录:
    第 1 章  JAX从零开始 1

    1.1  JAX来了 1

    1.1.1  JAX是什么 1

    1.1.2  为什么是JAX 2

    1.2  JAX的安装与使用 3

    1.2.1  Windows Subsystem for Linux的安装 3

    1.2.2  JAX的安装和验证 7

    1.2.3  PyCharm的下载与安装 8

    1.2.4  使用PyCharm和JAX 9

    1.2.5  JAX的Python代码小练习:计算SeLU函数 11

    1.3  JAX实战—MNIST手写体的识别 12

    1.3.1  第一步:准备数据集 12

    1.3.2  第二步:模型的设计 13

    1.3.3  第三步:模型的训练 13

    1.4  本章小结 15

    第2章  一学就会的线性回归、多层感知机与自动微分器 16

    2.1  多层感知机 16

    2.1.1  全连接层—多层感知机的隐藏层 16

    2.1.2  使用JAX实现一个全连接层 17

    2.1.3  更多功能的全连接函数 19

    2.2  JAX实战—鸢尾花分类 22

    2.2.1  鸢尾花数据准备与分析 23

    2.2.2  模型分析—采用线性回归实战鸢尾花分类 24

    2.2.3  基于JAX的线性回归模型的编写 25

    2.2.4  多层感知机与神经网络 27

    2.2.5  基于JAX的激活函数、softmax函数与交叉熵函数 29

    2.2.6  基于多层感知机的鸢尾花分类实战 31

    2.3  自动微分器 35

    2.3.1  什么是微分器 36

    2.3.2  JAX中的自动微分 37

    2.4  本章小结 38

    第3章  深度学习的理论基础 39

    3.1  BP神经网络简介 39

    3.2  BP神经网络两个基础算法详解 42

    3.2.1  最小二乘法详解 43

    3.2.2  道士下山的故事—梯度下降算法 44

    3.2.3  最小二乘法的梯度下降算法以及JAX实现 46

    3.3  反馈神经网络反向传播算法介绍 52

    3.3.1  深度学习基础 52

    3.3.2  链式求导法则 53

    3.3.3  反馈神经网络原理与公式推导 54

    3.3.4  反馈神经网络原理的激活函数 59

    3.3.5  反馈神经网络原理的Python实现 60

    3.4  本章小结 64

    第4章  XLA与JAX一般特性 65

    4.1  JAX与XLA 65

    4.1.1  XLA如何运行 65

    4.1.2  XLA如何工作 67

    4.2  JAX一般特性 67

    4.2.1  利用JIT加快程序运行 67

    4.2.2  自动微分器—grad函数 68

    4.2.3  自动向量化映射—vmap函数 70

    4.3  本章小结 71

    第5章  JAX的高级特性 72

    5.1  JAX与NumPy 72

    5.1.1  像NumPy一样运行的JAX 72

    5.1.2  JAX的底层实现lax 74

    5.1.3  并行化的JIT机制与不适合使用JIT的情景 75

    5.1.4  JIT的参数详解 77

    5.2  JAX程序的编写规范要求 78

    5.2.1  JAX函数必须要为纯函数 79

    5.2.2  JAX中数组的规范操作 80

    5.2.3  JIT中的控制分支 83

    5.2.4  JAX中的if、while、for、scan函数 85

    5.3  本章小结 89

    第6章  JAX的一些细节 90

    6.1  JAX中的数值计算 90

    6.1.1  JAX中的grad函数使用细节 90

    6.1.2  不要编写带有副作用的代码—JAX与NumPy的差异 93

    6.1.3  一个简单的线性回归方程拟合 94

    6.2  JAX中的性能提高 98

    6.2.1  JIT的转换过程 98

    6.2.2  JIT无法对非确定参数追踪 100

    6.2.3  理解JAX中的预编译与缓存 102

    6.3  JAX中的函数自动打包器—vmap 102

    6.3.1  剥洋葱—对数据的手工打包 102

    6.3.2  剥甘蓝—JAX中的自动向量化函数vmap 104

    6.3.3  JAX中高阶导数的处理 105

    6.4  JAX中的结构体保存方法Pytrees 106

    6.4.1  Pytrees是什么 106

    6.4.2  常见的pytree函数 107

    6.4.3  深度学习模型参数的控制(线性模型) 108

    6.4.4  深度学习模型参数的控制(非线性模型) 113

    6.4.5  自定义的Pytree节点 113

    6.4.6  JAX数值计算的运行机制 115

    6.5  本章小结 117

    第7章  JAX中的卷积 118

    7.1  什么是卷积 118

    7.1.1  卷积运算 119

    7.1.2  JAX中的一维卷积与多维卷积的计算 120

    7.1.3  JAX.lax中的一般卷积的计算与表示 122

    7.2  JAX实战—基于VGG架构的MNIST数据集分类 124

    7.2.1  深度学习Visual Geometry Group(VGG)架构 124

    7.2.2  VGG中使用的组件介绍与实现 126

    7.2.3  基于VGG6的MNIST数据集分类实战 129

    7.3  本章小结 133

    第8章  JAX与TensorFlow的比较与交互 134

    8.1  基于TensorFlow的MNIST分类 134

    8.2  TensorFlow与JAX的交互 137

    8.2.1  基于JAX的TensorFlow Datasets数据集分类实战 137

    8.2.2  TensorFlow Datasets数据集库简介 141

    8.3  本章小结 145

    第9章  遵循JAX函数基本规则下的自定义函数 146

    9.1  JAX函数的基本规则 146

    9.1.1  使用已有的原语 146

    9.1.2  自定义的JVP以及反向VJP 147

    9.1.3  进阶jax.custom_jvp和jax.custom_vjp函数用法 150

    9.2  Jaxpr解释器的使用 153

    9.2.1  Jaxpr tracer 153

    9.2.2  自定义的可以被Jaxpr跟踪的函数 155

    9.3  JAX维度名称的使用 157

    9.3.1  JAX的维度名称 157

    9.3.2  自定义JAX中的向量Tensor 158

    9.4  本章小结 159

    第10章  JAX中的高级包 160

    10.1  JAX中的包 160

    10.1.1  jax.numpy的使用 161

    10.1.2  jax.nn的使用 162

    10.2  jax.experimental包和jax.example_libraries的使用 163

    10.2.1  jax.experimental.sparse的使用 163

    10.2.2  jax.experimental.optimizers模块的使用 166

    10.2.3  jax.experimental.stax的使用 168

    10.3  本章小结 168

    第11章  JAX实战——使用ResNet完成CIFAR100数据集分类 169

    11.1  ResNet基础原理与程序设计基础 169

    11.1.1  ResNet诞生的背景 170

    11.1.2  使用JAX中实现的部件—不要重复造轮子 173

    11.1.3  一些stax模块中特有的类 175

    11.2  ResNet实战—CIFAR100数据集分类 176

    11.2.1  CIFAR100数据集简介 176

    11.2.2  ResNet残差模块的实现 179

    11.2.3  ResNet网络的实现 181

    11.2.4  使用ResNet对CIFAR100数据集进行分类 182

    11.3  本章小结 184

    第12章  JAX实战—有趣的词嵌入 185

    12.1  文本数据处理 185

    12.1.1  数据集和数据清洗 185

    12.1.2  停用词的使用 188

    12.1.3  词向量训练模型word2vec的使用 190

    12.1.4  文本主题的提取:基于TF-IDF 193

    12.1.5  文本主题的提取:基于TextRank 197

    12.2  更多的词嵌入方法—FastText和预训练词向量 200

    12.2.1  FastText的原理与基础算法 201

    12.2.2  FastText训练以及与JAX的协同使用 202

    12.2.3  使用其他预训练参数嵌入矩阵(中文) 204

    12.3  针对文本的卷积神经网络模型—字符卷积 205

    12.3.1  字符(非单词)文本的处理 206

    12.3.2  卷积神经网络文本分类模型的实现—conv1d(一维卷积) 213

    12.4  针对文本的卷积神经网络模型—词卷积 216

    12.4.1  单词的文本处理 216

    12.4.2  卷积神经网络文本分类模型的实现 218

    12.5  使用卷积对文本分类的补充内容 219

    12.5.1  中文的文本处理 219

    12.5.2  其他细节 222

    12.6  本章小结 222

    第13章  JAX实战—生成对抗网络(GAN) 223

    13.1  GAN的工作原理详解 223

    13.1.1  生成器与判别器共同构成了一个GAN 224

    13.1.2  GAN是怎么工作的 225

    13.2  GAN的数学原理详解 225

    13.2.1  GAN的损失函数 226

    13.2.2  生成器的产生分布的数学原理—相对熵简介 226

    13.3  JAX实战—GAN网络 227

    13.3.1  生成对抗网络GAN的实现 228

    13.3.2  GAN的应用前景 232

    13.4  本章小结 235

    附录  Windows 11安装GPU版本的JAX 236
查看详情
相关图书 / 更多
谷歌JAX深度学习从零开始学
谷歌分析宝典:数据化营销与运营实战
[美]费拉斯阿尔洛(Feras Alhlou)希拉兹阿西夫(Shiraz Asif) 著;宋星 译
谷歌JAX深度学习从零开始学
谷歌数据分析方法
[美]Avinash Kaushik 著;沈文婷 译
谷歌JAX深度学习从零开始学
谷歌时代的柏拉图
李鹏程 译
谷歌JAX深度学习从零开始学
谷歌团队五法则:学习谷歌人才和团队运营的核心战略
[日]桑原晃弥 著;曹春玲 译
谷歌JAX深度学习从零开始学
谷歌不听话:无互联网背后的大国角力
吴寸木 著
谷歌JAX深度学习从零开始学
谷歌方法
[美]比尔·基尔迪(Bill Kilday) 著;夏瑞婷 译
谷歌JAX深度学习从零开始学
谷歌的故事
马克·摩西德 著;戴维·A.怀斯、朱波 钱小婷 译
谷歌JAX深度学习从零开始学
谷歌之神:艾瑞克•施密特
[韩]姜炳俊、柳玹浄 著;王喜双 译
谷歌JAX深度学习从零开始学
谷歌的断舍离:互联网企业的破坏式创新
[日]辻野晃一郎;樊颖
谷歌JAX深度学习从零开始学
谷歌时间管理课
[日]佐佐木大辅 著
谷歌JAX深度学习从零开始学
谷歌的管理哲学
赵春林
谷歌JAX深度学习从零开始学
谷歌化的反思
[美]希瓦· 维迪亚那桑(Siva Vaidhyanathan) 著;苏健 译