Deep learning flax(谷歌)和dm俳句(deepmind)的主要区别是什么?

Deep learning flax(谷歌)和dm俳句(deepmind)的主要区别是什么?,deep-learning,neural-network,jax,Deep Learning,Neural Network,Jax,和之间的主要区别是什么 根据他们的描述: Flax,一个用于JAX的神经网络库 俳句,受十四行诗启发的JAX神经网络库 问题: 我应该选择哪一个基于jax的库来实现,比方说模型(由CNN层+LSTM层+FC组成)和ctc损失 UPD 发现与dm haiku开发者的差异: Flax包含了更多的电池,并配备了优化器、混合精度和一些训练循环(我被告知这些都是解耦的,您可以使用任意数量的电池)。俳句旨在解决NN模块和状态管理,它将问题的其他部分留给其他库(例如,优化optax) 俳句被设计成Son

和之间的主要区别是什么

根据他们的描述:

  • Flax,一个用于JAX的神经网络库
  • 俳句,受十四行诗启发的JAX神经网络库
问题

我应该选择哪一个基于jax的库来实现,比方说模型(由CNN层+LSTM层+FC组成)和ctc损失


UPD

发现与dm haiku开发者的差异:

Flax包含了更多的电池,并配备了优化器、混合精度和一些训练循环(我被告知这些都是解耦的,您可以使用任意数量的电池)。俳句旨在解决NN模块和状态管理,它将问题的其他部分留给其他库(例如,优化optax)

俳句被设计成Sonnet(TF NN库)到JAX的一个端口。因此,如果(像DeepMind一样)您有大量十四行诗+TF代码,您可能希望在JAX中使用这些代码,并且希望尽可能容易地迁移这些代码,那么俳句是一个更好的选择

我认为,否则,这取决于个人偏好。在字母表中,每一个图书馆都有100名研究人员在使用,所以我不认为你会走错任何一条路。在DeepMind,我们对俳句进行了标准化,因为它对我们来说是有意义的。我建议看一下这两个库提供的示例代码,看看哪一个与您对结构化实验的偏好相匹配。我认为,如果您将来改变主意,您会发现将代码从一个库移动到另一个库并不复杂



原始问题仍然相关。

我最近遇到了同样的问题,我喜欢俳句,因为我认为它们的实现(见VS)更接近原始JAX精神(即链接
init
predict
函数,并在Pytrees中跟踪参数)这让我更容易修改东西


但是,如果你不想深入修改内容,最好的选择是在CNNs+LSTM上找到一篇带有亚麻/俳句的好博客文章,并坚持下去。我的总体观点是,即使我更喜欢用模块化的方式构建俳句(+Optax+Rlax+Chex+…),这两个库还是非常接近的。

谢谢你的回答。您是否同意dm haiku的语法更接近tensorflow,但flax与pytorch类似的说法?我认为JAX/flax/haiku比tensorflow/Keras更容易。我说不出pytorch的事,但无论如何我也不会把它比作亚麻。对我来说,第一个选择是TensorFlow、PyTorch或JAX,然后,如果你选择JAX,第二个选择是Flax/Trax/Haiku/。。。(或Keras/Theano…如果您选择TensorFlow)。不过,这可能是一种过时的观点!