jax-ws和jax-rs_用jax和elegy进行深度学习

In this post, we willhow toJax and Elegy toDeep. Along the way, we will see how Jaxtoand , andhow Elegyto Keras.
在本文中 , 我们将探讨如何利用Jax和Elegy创建深度学习模型 。一路上,我们将看到Jax与和的比较,以及类似Elegy与Keras的比较 。
什么是贾克斯? (What is Jax?)
a doubt(2015) and(2016) have had a bigin the ML , the “arms race”them has made themto aset of(check out State of ML2019 for a goodof their ). Jax (2018) is theto join the party and ita niceof this . Butofbeing a Deep, Jaxa superwithand XLAthat some haveNumpy on .
毫无疑问,(2015)和(2016)在ML社区中产生了巨大影响,它们之间的``军备竞赛''使它们趋同于一组类似的功能(查看《 2019年ML框架状态》以获取更多信息) 。他们的斗争总结) 。Jax(2018)是最新加入该党的人,它代表了这种融合的一个很好的综合 。但是Jax并没有直接成为深度学习框架,而是创建了一个具有自动区分和XLA支持的超精细线性代数库,有人称其为类固醇Numpy。
Here are some of thethat make Jax .
以下是使Jax变得很棒的一些事情 。
Numpy API (The Numpy API)
Jaxthe Numpy API and makes it the main way towith Jax .
Jax实现了Numpy API , 并使其成为使用Jax数组的主要方法 。
This isa huge deal since Numpy is theofinand every datahashours ofwith Numpyof itsfield of . It makeswith Jax a true . Not only that, Jax’sbase typefrom Numpy’stype,that 3rd partycanthese . You can even start using Jax “just” to speed up yourNumpy code with very few .
由于Numpy是中数值计算的通用语言 ,因此,这实际上是一笔不小的数目 , 并且每个数据科学家都已经拥有无数小时的Numpy经验 , 无论其具体的实践领域是什么 。它使与Jax一起工作成为真正的乐趣 。不仅如此,Jax的基本类型继承自Numpy的类型,这意味着第三方库可以接受这些结构 。您甚至只需很少的更改就可以开始使用Jax“只是”来加速现有的Numpy代码 。
统一的API (AAPI)
Jax has a clean andAPI for eager and JIT .
Jax具有一个干净且统一的API , 用于渴望和JIT执行 。
andhave both eager andmodes, , each added the mode it waslate in the ’s , this has left scars. Inforeager mode was added in such a way that it was not 100%with graph mode,rise to a bad. In ’s case, it wasto use less(like NCWH on itsAPI) justthey were moreon eager mode and has kept them for. Jax, on the other hand, was born with andby both of these modes, iton using eager forand JIT toheavy , but you can mix and match these modes where .
如今,和都拥有急切的执行模式和已编译的执行模式,但是,每种模式都添加了在框架生命周期末尾缺少的模式,这留下了伤疤 。例如,在中,急切模式以与图形模式不100%兼容的方式添加,从而导致不良的开发人员体验 。在的情况下,最初被迫使用不太直观的张量格式(例如其视觉API上的NCWH ),只是因为它们在渴望模式下性能更高,并且出于兼容性原因而保留它们 。另一方面,Jax与这两种模式一起诞生并受其影响,它主要侧重于使用急切的调试和JIT实际执行繁重的计算,但是您可以在方便的地方混合使用这些模式 。
XLA (XLA)
Jax is based on next gen ML.
Jax基于下一代 ML编译器技术 。
Jaxuses XLAofto aofC++ and CUDA code. Whileis thewhy XLAat all, its use is notwideits code base and still hascode. , on the other hand, has aofcode to the point whereare onlyon(/xla is a thing but it’s onlyon TPU ).
Jax专门使用XLA,而不是依赖于设备的C ++和CUDA代码的混合 。虽然根本就是XLA存在的原因 , 但它的使用并未在其代码库中完全普及,并且仍然具有与设备有关的代码 。另一方面,的设备相关代码数量令人沮丧,以至于某些操作仅在特定设备上受支持(/ xla是一回事,但仅专注于TPU支持) 。
特别行动 ( )
Jaxaset of.
Jax带来了一组独特的功能强大的功能转换 。
Jax has some novel, easy-to-usethatusers tothat are hard or evenin other . grad formakesn-th ordereasy, vmapusers to write perandapply them to a whole batch, and pmapthe user toamong . There are morewhich you can find on Jax’s.
Jax具有一些新颖,易于使用的转换,使用户能够执行复杂的操作 , 而这些操作在其他框架中是很难甚至是不可能的 。例如, grad使得计算n vmap度非常容易,vmap使用户可以按样本编写操作并将其自动应用于整个批次,而pmap允许用户轻松地在设备之间分配计算 。您可以在Jax的官方文档中找到更多转换 。
兼容性
Jax is .
Jax是 。
This used to be ’s moto but Jax takes itlevel byitsonand basictypes, i.e. Jax canwithto types like lists, , and ! This isn’t just a neat trick, many Jax-basedon this . Jax alsolikeandwhichitswith the rest of thedata.
【jax-ws和jax-rs_用jax和elegy进行深度学习】这曾经是的moto,但是Jax通过基于功能组合和基本类型的体系结构将其提升到另一个层次,即Jax可以区分列表,元组和字典等类型! 这不仅仅是一个巧妙的技巧,许多基于Jax的框架都依赖于此功能 。Jax还实现了诸如和类的协议,从而最大限度地提高了与数据科学生态系统其余部分的兼容性 。