建议使用以下浏览器,以获得最佳体验。 IE 9.0+以上版本 Chrome 31+ 谷歌浏览器 Firefox 30+ 火狐浏览器
设置昵称

在此一键设置昵称,即可参与社区互动!

确定
我再想想
选择版块
EI企业智能 主题:15184帖子:291832

【其他】

相比TensorFlow和PyTorch,JAX的优势是什么?

角动量 2020/5/31 1163
我们使用的工具对我们探索的研究领域有着不相称的影响。无论是有意识的,还是在潜意识里,我们把想法限制在我们知道如何有效实施的想法空间里。正如罗曼·林(Roman Ring)在他探索下一代机器学习工具的博客文章中指出的那样,AlexNet主要是一项软件工程成就,它使得几十年来的好的机器学习想法能够得到正确的测试。


JAX向前迈出了重要的一步,不是因为它比现有的机器学习框架具有更简洁的API,或者因为它比Tensorflow和PyTorch在做它们被设计的事情上做得更好,而是因为它允许我们更容易地尝试以前可能的更广阔的思想空间。

如果您深入研究并开始将JAX用于自己的项目,你可能会对JAX在表面上做得如此之少而感到沮丧。需要手工编写训练循环,管理参数需要自定义代码。每当你想要一个新的随机值时,你甚至必须生成你自己的随机PRNG密钥。但在某种程度上,这也是JAX最大的优势。

它不会把你看不到的细节藏在窗帘后面。内部结构被广泛地记录下来,很明显,JAX关心的是让其他开发者做出贡献。JAX对你打算如何使用它做了很少的假设,这样做给了你在其他框架中做不到的灵活性。

每当您将一个较低的API封装到一个较高的抽象层时,您就要对最终用户可能拥有的使用空间做出假设。当您心中有一个非常有针对性的应用程序时,这就形成了非常简洁的应用程序接口,允许您用最少的配置获得想要的结果。特别是最近在TF2.0中强调了Keras和更高级的APIs,编写Tensorflow感觉有点像使用3D打印机一样简单,只要你想要一个适合打印表面的塑料物体,它就会像被施了魔法一样工作。

和JAX一起工作就像被允许进入一个功能完善的机械车间。是的,如果你不小心的话,你周围的一切东西,都有可能让你被砍掉一根手指或者造成严重的身体伤害。但是,自由地实施和探索那些可能行得通的“无处不在”的想法,使得利用JAX变得值得。所以请戴上你隐喻性的护目镜,开始使用JAX建造一些奇怪的东西。

尽管JAX的生态系统仍然相当分散,但是确实存在一些在JAX之上构建的框架,这些框架在核心应用编程接口之上提供了一些简单的抽象。特别值得注意的是一下几个:

  • Flax:为灵活性而设计的功能框架

  • Trax: [Tensor2Tensor]的精神传承者,拥有TF和JAX的后台支持。

  • Stax:一个神经网络库,是建成的JAX实验模块的一部分


JAX生态系统中的所有库似乎都以“ax”结尾。


回复1

某地瓜
0 0
2020/5/31 19:04

学习了,博闻强识才能应用自如!

上划加载中
直达楼层
标签
您还可以添加5个标签
  • 没有搜索到和“关键字”相关的标签
  • 云产品
  • 解决方案
  • 技术领域
  • 通用技术
  • 平台功能
取消

采纳成功

您已采纳当前回复为最佳回复

角动量

发帖: 218粉丝: 8

发消息 + 关注

发表于2020年05月31日 09:31:14 1163 1
直达本楼层的链接
楼主
显示全部楼层
[其他] 相比TensorFlow和PyTorch,JAX的优势是什么?

我们使用的工具对我们探索的研究领域有着不相称的影响。无论是有意识的,还是在潜意识里,我们把想法限制在我们知道如何有效实施的想法空间里。正如罗曼·林(Roman Ring)在他探索下一代机器学习工具的博客文章中指出的那样,AlexNet主要是一项软件工程成就,它使得几十年来的好的机器学习想法能够得到正确的测试。


JAX向前迈出了重要的一步,不是因为它比现有的机器学习框架具有更简洁的API,或者因为它比Tensorflow和PyTorch在做它们被设计的事情上做得更好,而是因为它允许我们更容易地尝试以前可能的更广阔的思想空间。

如果您深入研究并开始将JAX用于自己的项目,你可能会对JAX在表面上做得如此之少而感到沮丧。需要手工编写训练循环,管理参数需要自定义代码。每当你想要一个新的随机值时,你甚至必须生成你自己的随机PRNG密钥。但在某种程度上,这也是JAX最大的优势。

它不会把你看不到的细节藏在窗帘后面。内部结构被广泛地记录下来,很明显,JAX关心的是让其他开发者做出贡献。JAX对你打算如何使用它做了很少的假设,这样做给了你在其他框架中做不到的灵活性。

每当您将一个较低的API封装到一个较高的抽象层时,您就要对最终用户可能拥有的使用空间做出假设。当您心中有一个非常有针对性的应用程序时,这就形成了非常简洁的应用程序接口,允许您用最少的配置获得想要的结果。特别是最近在TF2.0中强调了Keras和更高级的APIs,编写Tensorflow感觉有点像使用3D打印机一样简单,只要你想要一个适合打印表面的塑料物体,它就会像被施了魔法一样工作。

和JAX一起工作就像被允许进入一个功能完善的机械车间。是的,如果你不小心的话,你周围的一切东西,都有可能让你被砍掉一根手指或者造成严重的身体伤害。但是,自由地实施和探索那些可能行得通的“无处不在”的想法,使得利用JAX变得值得。所以请戴上你隐喻性的护目镜,开始使用JAX建造一些奇怪的东西。

尽管JAX的生态系统仍然相当分散,但是确实存在一些在JAX之上构建的框架,这些框架在核心应用编程接口之上提供了一些简单的抽象。特别值得注意的是一下几个:

  • Flax:为灵活性而设计的功能框架

  • Trax: [Tensor2Tensor]的精神传承者,拥有TF和JAX的后台支持。

  • Stax:一个神经网络库,是建成的JAX实验模块的一部分


JAX生态系统中的所有库似乎都以“ax”结尾。


举报
分享

分享文章到朋友圈

分享文章到微博

采纳成功

您已采纳当前回复为最佳回复

某地瓜

发帖: 144粉丝: 5

发消息 + 关注

发表于2020年05月31日 19:04:28
直达本楼层的链接
沙发
显示全部楼层

学习了,博闻强识才能应用自如!

点赞 评论 引用 举报

游客

您需要登录后才可以回帖 登录 | 立即注册

结贴

您对问题的回复是否满意?
满意度
非常满意 满意 一般 不满意
我要反馈
0/200