論文の概要: Equinox: neural networks in JAX via callable PyTrees and filtered
transformations
- arxiv url: http://arxiv.org/abs/2111.00254v1
- Date: Sat, 30 Oct 2021 14:08:56 GMT
- ステータス: 処理完了
- システム内更新日: 2021-11-04 06:21:35.254400
- Title: Equinox: neural networks in JAX via callable PyTrees and filtered
transformations
- Title(参考訳): equinox:呼び出し可能なpytreesとフィルタ変換によるjaxのニューラルネットワーク
- Authors: Patrick Kidger and Cristian Garcia
- Abstract要約: JAXとPyTorchは2つの人気のあるPython自動微分フレームワークである。
JAXは純粋関数と関数型プログラミングに基づいている。
PyTorchは、パラメータ化された関数を定義するためにオブジェクト指向(OO)クラスベースの構文を普及させた。
- 参考スコア(独自算出の注目度): 4.264192013842096
- License: http://creativecommons.org/licenses/by/4.0/
- Abstract: JAX and PyTorch are two popular Python autodifferentiation frameworks. JAX is
based around pure functions and functional programming. PyTorch has popularised
the use of an object-oriented (OO) class-based syntax for defining
parameterised functions, such as neural networks. That this seems like a
fundamental difference means current libraries for building parameterised
functions in JAX have either rejected the OO approach entirely (Stax) or have
introduced OO-to-functional transformations, multiple new abstractions, and
been limited in the extent to which they integrate with JAX (Flax, Haiku,
Objax). Either way this OO/functional difference has been a source of tension.
Here, we introduce `Equinox', a small neural network library showing how a
PyTorch-like class-based approach may be admitted without sacrificing JAX-like
functional programming. We provide two main ideas. One: parameterised functions
are themselves represented as `PyTrees', which means that the parameterisation
of a function is transparent to the JAX framework. Two: we filter a PyTree to
isolate just those components that should be treated when transforming (`jit',
`grad' or `vmap'-ing) a higher-order function of a parameterised function --
such as a loss function applied to a model. Overall Equinox resolves the above
tension without introducing any new programmatic abstractions: only PyTrees and
transformations, just as with regular JAX. Equinox is available at
\url{https://github.com/patrick-kidger/equinox}.
- Abstract(参考訳): JAXとPyTorchは2つの人気のあるPython自動微分フレームワークである。
JAXは純粋関数と関数型プログラミングに基づいている。
PyTorchは、ニューラルネットワークのようなパラメータ化された関数を定義するためにオブジェクト指向(OO)クラスベースの構文を普及させた。
この根本的な違いは、JAXでパラメータ化された関数を構築するための現在のライブラリが、OOアプローチを完全に拒否するか(Stax)、あるいはOOから関数への変換を導入し、複数の新しい抽象化を導入し、JAXと統合する範囲(Flax、Haiku、Objax)に制限されたことを意味する。
いずれにせよ、このOO/機能的な違いは緊張の源です。
これは、jaxのような関数型プログラミングを犠牲にすることなく、pytorchのようなクラスベースのアプローチがどのように受け入れられるかを示す小さなニューラルネットワークライブラリである。
主なアイデアは2つある。
ひとつは、パラメータ化された関数自体が 'PyTrees' として表現されることです。
2つ目は、PyTreeをフィルタして、モデルに適用される損失関数のようなパラメータ化された関数の高階関数(`jit', `grad', `vmap'-ing)を変換する際に扱うべきコンポーネントだけを分離することです。
全体的なequinoxは、通常のjaxと同様、pytreeとtransformsのみを新たに導入することなく、上記の緊張を解消する。
Equinox は \url{https://github.com/patrick-kidger/equinox} で入手できる。
関連論文リスト
- JAXbind: Bind any function to JAX [0.0]
JAXbindは、カスタムのいわゆるJAXプリミティブを定義するための使いやすいPythonインターフェースを提供する。
JAXbindは、ユーザがカスタムのデリバティブとルールでJAX関数エンジンをインターフェースすることができ、カスタムのプリミティブに対してすべてのJAX変換を可能にする。
論文 参考訳(メタデータ) (2024-03-13T16:50:04Z) - TopoX: A Suite of Python Packages for Machine Learning on Topological
Domains [89.9320422266332]
TopoXはPythonのソフトウェアスイートで、トポロジ上のコンピューティングと機械学習のための信頼性とユーザフレンドリなビルディングブロックを提供する。
TopoXは、TopoNetX、TopoEmbedX、TopoModelxの3つのパッケージで構成されている。
論文 参考訳(メタデータ) (2024-02-04T10:41:40Z) - Automatic Functional Differentiation in JAX [8.536145202129827]
JAXを高階関数(機能や演算子)を自動的に区別する機能で拡張します。
関数を配列の一般化として表現することにより、JAXの既存のプリミティブシステムを使って高階関数を実装します。
論文 参考訳(メタデータ) (2023-11-30T17:23:40Z) - Hyperparameter Tuning Cookbook: A guide for scikit-learn, PyTorch,
river, and spotPython [0.20305676256390928]
このドキュメントは、Scikit-learn、PyTorch、RiverのSpotPythonを使ったハイパーパラメータチューニングのガイドを提供する。
ハンズオンのアプローチとステップバイステップの説明により、この料理本は実践的な出発点となる。
論文 参考訳(メタデータ) (2023-07-17T16:20:27Z) - PyTorch Hyperparameter Tuning - A Tutorial for spotPython [0.20305676256390928]
このチュートリアルには、実験を実行し、ハイパーパラメータをチューニングするためのPythonライブラリであるRay Tuneとの簡単な比較が含まれている。
spotPythonはRay Tuneよりも柔軟で透明でありながら、同じような、あるいはさらに優れた結果が得られることを示しています。
論文 参考訳(メタデータ) (2023-05-19T17:47:50Z) - SequeL: A Continual Learning Library in PyTorch and JAX [50.33956216274694]
SequeLは継続学習のためのライブラリで、PyTorchとJAXフレームワークの両方をサポートする。
それは、正規化ベースのアプローチ、リプレイベースのアプローチ、ハイブリッドアプローチを含む、幅広い連続学習アルゴリズムのための統一インターフェースを提供する。
私たちはSequeLをオープンソースライブラリとしてリリースし、研究者や開発者が自身の目的で簡単にライブラリを実験し拡張することができます。
論文 参考訳(メタデータ) (2023-04-21T10:00:22Z) - Equivariance with Learned Canonicalization Functions [77.32483958400282]
正規化を行うために小さなニューラルネットワークを学習することは、事前定義を使用することよりも優れていることを示す。
実験の結果,正準化関数の学習は多くのタスクで同変関数を学習する既存の手法と競合することがわかった。
論文 参考訳(メタデータ) (2022-11-11T21:58:15Z) - PyHopper -- Hyperparameter optimization [51.40201315676902]
我々は機械学習研究者のためのブラックボックス最適化プラットフォームであるPyHopperを紹介する。
PyHopperの目標は、最小限の労力で既存のコードと統合し、最小限のマニュアル監視で最適化プロセスを実行することである。
単純さを主テーマとして、PyHopperは単一のロバストなマルコフチェーンモンテカルロ最適化アルゴリズムを利用している。
論文 参考訳(メタデータ) (2022-10-10T14:35:01Z) - JAXFit: Trust Region Method for Nonlinear Least-Squares Curve Fitting on
the GPU [0.0]
JAX と呼ばれる新しい深層学習Pythonライブラリを用いて,非線形最小二乗曲線整合問題に対するGPU上の信頼領域法を実装した。
私たちのオープンソースパッケージであるJAXFitは、制約なしと制約なしのカーブ適合問題の両方で機能します。
論文 参考訳(メタデータ) (2022-08-25T16:13:29Z) - PyHHMM: A Python Library for Heterogeneous Hidden Markov Models [63.01207205641885]
PyHHMM は Heterogeneous-Hidden Markov Models (HHMM) のオブジェクト指向Python実装である。
PyHHMMは、異種観測モデル、データ推論の欠如、異なるモデルの順序選択基準、半教師付きトレーニングなど、同様のフレームワークではサポートされない機能を強調している。
PyHHMMは、numpy、scipy、scikit-learn、およびシーボーンPythonパッケージに依存しており、Apache-2.0ライセンスの下で配布されている。
論文 参考訳(メタデータ) (2022-01-12T07:32:36Z) - OPFython: A Python-Inspired Optimum-Path Forest Classifier [68.8204255655161]
本稿では,OPFythonと表記されるPythonベースのOptimum-Path Forestフレームワークを提案する。
OPFythonはPythonベースのライブラリなので、C言語よりもフレンドリーな環境とプロトタイピングの作業スペースを提供する。
論文 参考訳(メタデータ) (2020-01-28T15:46:19Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。