《JAX可微分编程》包邮送书五本

文章目录

  • 前言
  • JAX到底是什么?
  • 书籍内容介绍
  • 包邮送书5本

前言

2015年,Google Brain开放了一个名为「TensorFlow」的研究项目,这款产品迅速流行并成为人工智能业界的主流深度学习框架,塑造了现代机器学习的生态系统。

7年后,Google的TensorFlow失去了开发者的拥护,因为这些开发者转向了Meta推出的另一款框架PyTorch。

在PyTorch的阴影下,Google正在悄悄地开发一个机器学习框架,那就是JAX,官方定义为CPU、GPU和TPU上的NumPy。它具有出色的自动微分(differentiation)功能,是可用于高性能机器学习研究的Python库。许多人将其视为TensorFlow的继承者。
今天小异带来一本新书,这是一本来自北大的天才00后少年程琪皓撰写的图书《JAX可微分编程》,绝对能够满足大家对于JAX的好奇心。

《JAX可微分编程》包邮送书五本_第1张图片

JAX到底是什么?

它可以被视为 GPU 和 TPU 上运行的NumPy

jax.numpy提供了与NumPy非常相似的API接口。
它与 NumPy API 非常相似

几乎任何可以用 NumPy 完成的事情都可以用 jax.numpy 完成。
它与主程序分离但可以被主程序调用

由于使用XLA(一种加速线性代数计算的编译器)将Python和JAX代码JIT编译成优化的内核,因此可以在不同设备(例如,GPU和TPU)上运行。而优化的内核是为高吞吐量设备(例如,GPU和TPU)进行编译的,它与主程序分离但可以被主程序调用。JIT编译可以用jax.jit()触发。
它对自动微分有很好的支持

对机器学习研究很有用,可以使用 jax.grad() 触发自动微分。
JAX提供了一些在编写数字处理时非常有用的程序转换

例如,JIT.JAX()用于JIT编译和加速代码,JIT .grad()用于求导, JIT .vmap()用于自动向量化或批处理。
JAX可以进行异步调度

所以需要调用 .block_until_ready() 以确保计算已经实际发生。
我们都清楚JAX是一款能比肩TensorFlow和PyTorch的深度学习框架,但我想大家可能对JAX在科学计算领域的应用还不甚了解。需要知道的是,科学计算涵盖的领域可比深度学习领域要广泛。
当前,除了人工智能,JAX还在流体力学、大气科学、控制系统、贝叶斯方法和科学仿真等诸多领域得到了广泛应用。
《JAX可微分编程》侧重于JAX在科学计算领域中的应用,以Google开发的JAX开源框架为载体,详细介绍了JAX在可微分编程领域的应用,具体包括自动微分的基本原理、数据结构,以及自动微分在实际场景中的应用,本书涉及的领域包括但不限于算法优化、神经网络、工程建模、量子计算等。

书籍内容介绍

第一部分:可微分编程的基本框架(第1-2章)

作者在分别阅读了SymPy、Torch及JAX库数万行相关部分的源码之后,尝试从零开始,分别用百余行代码,对符号微分、自动微分的前向模式,以及自动微分的反向模式这三种数据结构进行了简单的实现。

第二部分:JAX库的特性介绍(第3-6章)

围绕JAX库展开对深度学习、λ演算、并行计算等领域的介绍。作为Google开发的高性能数值计算和自动微分库,JAX提供了自动微分、即时编译与矢量并行化这三大功能,并提供了与NumPy极为相似的调用接口。

第三部分:实际场景下的自动微分(第7-10章)

除了优化算法、循环神经网络等自动微分传统的使用场景,还对工程建模中的数值模拟、计算神经科学等方向进行了较为详细的介绍。还加入了对量子计算中的自动微分的介绍,具有独特的时代特征。
《JAX可微分编程》包邮送书五本_第2张图片
《JAX可微分编程》包邮送书五本_第3张图片无论你是需要用到自动微分技术的工程技术人员或高校科研人员,还是只是对JAX框架感兴趣并想要一探究竟的AI从业人员,都可以通过学习这本《JAX可微分编程》掌握JAX强大的科学计算功能。

包邮送书5本

抽奖送书老规矩(不点赞收藏中奖无效):注意记得关注博主不然中奖了还不知道!!!

  • 1. 点赞收藏文章
  • 2. 评论区留言:人生苦短,我用Python!!!(留言才能进入奖池,每人最多留言三条)
  • 3. 周六八点爬虫抽奖5人
  • 如果不想抽奖京东自营购买链接:https://item.m.jd.com/product/13973124.html?utm_campaign=t_1001328990

你可能感兴趣的:(python,深度学习,机器学习)