At Ivy, weโre on a mission to unify all ML frameworks ๐ฅ + automate code conversions ๐
pip install ivy-core ๐, join our growing community ๐, andย lets-unify.ai! ๐ฆพ
In this post, we introduce Ivy, a new ML framework that currently supports JAX, TensorFlow, PyTorch, MXNet, and Numpy. Weโre very excited for you to try it out!
Next on our roadmap is to support automatic code conversions between any frameworks ๐, and add instant multi-framework support for all open-source libraries with only a few lines of code changed! Read on to learn more ๐
The post is split into a number of sub-pages explaining different aspects of why we created Ivy, how to use it, what weโve got planned on our roadmap, and how to contribute! Click on the sub-headings to check out these pages!
We use ๐ง to indicate that the feature being discussed is in development. We use โ to indicate that it is already implemented!
Background
(a)ย ML Explosion
A huge number of ML tools have exploded onto the scene!
(b)ย Why Unify?
Why should we try to unify them?
(c)ย Standardization
Weโre collaborating with Theย Consortium for Python Data API Standards
Design
Ivy can fulfill two distinct purposes:
- enable automatic code conversions between frameworks ๐ง
- serve as a new ML framework with multi-framework support โ
The Ivy codebase can then be split into three categories, and can be further split into 8 distinct submodules, each of which fall into one of these three categories as follows:
(a)ย Building Blocks
back-end functional APIs โ
Ivy functional API โ
Framework Handler โ
Ivy Compiler ๐ง
(b)ย Ivy as a Transpiler
front-end functional APIs ๐ง
(c)ย Ivy as a Framework
Ivy stateful API โ
Ivy Container โ
Ivy Array ๐ง
Extensions
(a)ย Applied Librariesย โ
Ivy libraries in mechanics, vision, robotics, memory and other areas
(b)ย Builder [post coming soon!]ย โ
ivy.Trainer, ivy.Dataset, ivy.Dataloader and other helpful classes and functions for creating training workflows in only a few lines of code
Roadmap
We strongly welcome and encourage contributions from the community as we take on this important journey towards ML framework unification. These posts will explain exactly how you can get involved ๐
(a)ย Standardize [post coming soon!]ย ๐ง
Align Ivy with theย Consortium for Python Data API Standards
(b)ย Front-Ends [post coming soon!]ย ๐ง
Create framework-specific front-ends for each supported ML framework
(c)ย Code Conversions [post coming soon!]ย ๐ง
Verify code conversions work for each back-end and front-end combo
(d)ย Ecosystem [post coming soon!]ย ๐ง
Add multi-framework support to popular repos with a few lines changed
Contributing
Join our community as a code contributor, and help accelerate our journey to unify all ML frameworks! Find out more in ourย Contributingย guide!
Article originally posted here. Reposted with permission.