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

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

查阅电子书
手机扫码
  • 微信扫一扫

    关注微信公众号

因版权原因待上架

类似推荐

编辑推荐

本书详解JAX框架深度学习的相关知识,配套示例源码、数据集和开发环境。

内容简介

全书共分为13章,内容包括JAX从零开始,一学就会的线性回归、多层感知机与自动微分器,深度学习的理论基础,XLA与JAX一般特性,JAX的高级特性,JAX的一些细节,JAX中的卷积,JAX与TensorFlow的比较与交互,遵循JAX函数基本规则下的自定义函数,JAX中的高级包。最后给出3个实战案例:使用ResNet完成CIFAR100数据集分类,有趣的词嵌入,生成对抗网络(GAN)。

本书适合JAX框架初学者、深度学习初学者以及深度学习从业人员,也适合作为高等院校和培训机构人工智能相关专业的师生教学参考书。

作者简介

作者王晓华,计算机专业讲师,长期讲授面向对象程序设计、数据结构、Hadoop程序设计等研究生和本科生相关课程;主要研究方向为云计算、数据挖掘。曾主持和参与多项国家和省级科研课题,独立科研项目获省级成果认定,发表过多篇论文,拥有一项专利。著有《Spark MLlib机器学习实践》《TensorFlow深度学习应用实践》《OpenCV TensorFlow深度学习与计算机视觉实战》等图书。

章节目录

版权信息

内容简介

前言

深度学习图书推荐

第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章 JAX实战——使用ResNet完成CIFAR100数据集分类

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

11.1.1 ResNet诞生的背景

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

11.1.3 一些stax模块中特有的类

11.2 ResNet实战—CIFAR100数据集分类

11.2.1 CIFAR100数据集简介

11.2.2 ResNet残差模块的实现

11.2.3 ResNet网络的实现

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

11.3 本章小结

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

12.1 文本数据处理

12.1.1 数据集和数据清洗

12.1.2 停用词的使用

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

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

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

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

12.2.1 FastText的原理与基础算法

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

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

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

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

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

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

12.4.1 单词的文本处理

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

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

12.5.1 中文的文本处理

12.5.2 其他细节

12.6 本章小结

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

13.1 GAN的工作原理详解

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

13.1.2 GAN是怎么工作的

13.2 GAN的数学原理详解

13.2.1 GAN的损失函数

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

13.3 JAX实战—GAN网络

13.3.1 生成对抗网络GAN的实现

13.3.2 GAN的应用前景

13.4 本章小结

附录 Windows 11安装GPU版本的JAX

谷歌JAX深度学习从零开始学是2022年由清华大学出版社出版,作者王晓华。

得书感谢您对《谷歌JAX深度学习从零开始学》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

购买这本书

你可能喜欢
深度学习与围棋 电子书
深入浅出的深度学习入门书,从零实现AlphaGo,为AI理论和应用打下基础。
深度学习原理与实践 电子书
(1)大量图例,简单易懂。作者亲自绘制了大量插图,力求还原深度学习的算法思想,分解和剖析晦涩的算法,用图例来表示复杂的问题。生动的图例也能给读者带来阅读乐趣,快乐地学习算法知识,体会深度学习的算法本质。 (2)简化公式,生动比喻。深度学习和机器学习类的书中通常会有大量复杂冗长的算法公式,为了避免出现读者读不懂的情况,本书尽可能地统一了公式和符号,简化相关公式,并加以生动的比喻进行解析。在启发读者的同时,锻炼读者分析问题和解决问题的能力。 (3)算法原理,代码实现。在介绍深度学习及相关算法的原理时,不仅给出了对应的公式,还给出了实现和求解公式的代码,让读者明确该算法的作用、输入和输出。原理与代码相结合,使得读者对深度学习的算法实现更加具有亲切感。 (4)深入浅出,精心剖析。理解深度学习需要一定的机器学习知识,本书在D1章介绍了深度学习与机器学习的关系,并简要介绍了机器学习的内容。在内容安排上,每章依次介绍模型框架的应用场景、结构和使用方式,最后通过真实的案例去全面分析该模型结构。目的是让读者可以抓住深度学习的本质。 (5)入门实践,案例重现。每一章最后的真实案例不是直接堆砌代码,而是讲解使用该算法模型的原因和好处。从简单的背景知识出发,使用前文讲解过的深度学习知识实现一个实际的工程项目。实践可以用于及时检验读者对所学知识的掌握程度,为读者奠定深度学习的实践基础。 将一本技术书籍写得通俗易懂谈何容易,但《深度学习原理与实践》这本书确实做到了。书中对近年来火热的深度学习理论知识进行简单剖析,化繁为简,没有局限于坐而论道,而是将实例和数学理论相结合,让读者能够快速理解各种模型并上手实践,值得细读。 --唐春明 广州大学数学与信息学科学院副院长 本书从原理、方法、实践这 3 个维度系统地介绍了深度学习的方方面面,内容详实,解读清晰,细节与全貌兼顾,既适合初学者阅读,也可以作为深入研究的参考用书。 --杨刚 西安电子科技大学教授 近年来出版的深度学习相关图书中,本书是我见过非常有指导意义的中文书籍之一。本书对 ANN、CNN、RNN 等模型进行深入浅出的介绍,引入大量图例和简化后的公式,让算法浅显易懂。每一章的实践内容都给人惊喜,强烈推荐! --吴健之 腾讯音乐高级工程师 作为产品经理,我能看懂的深度学习书籍实在太少了。本书恰到好处,插图丰富直观,数学公式简练,很喜欢此类风格的图书,易懂好学。即使你不是程序员或算法专家,该书也值得一看! --张瑞 中软国际高级产品经理
深度强化学习实战 电子书
详解深度强化学习,从入门到实战。
深度学习程序设计实战 电子书
本书以Python语言和Tensorflow为工具,由浅入深地讲述了深度学习程序设计的基本原理、算法和思考问题的方法,内容包括自顶向下的程序设计、递归程序设计、面向对象的程序设计、反向传播算法、三层神经网络、卷积神经网络、循环神经网络、生成式对抗网络和目标检测等。
PaddlePaddleFluid深度学习入门与实战 电子书
本书全面讲解PaddlePaddle Fluid框架在深度学习领域的应用。