You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Ivy enables you to convert ML models, tools and libraries between frameworks using ivy.transpile
Installation
The easiest way to install Ivy is using pip:
pip install ivy
From Source
You can also install Ivy from source if you want to take advantage of
the latest changes:
git clone https://github.com/ivy-llc/ivy.git
cd ivy
pip install --user -e .
Supported Frameworks
These are the frameworks that ivy.transpile currently supports conversions from and to.
Framework
Source
Target
PyTorch
β
π§
TensorFlow
π§
β
JAX
π§
β
NumPy
π§
β
Using ivy
Here's some examples, to help you get started using Ivy! The examples page also features a wide range of
demos and tutorials showcasing some more use cases for Ivy.
Transpiling any code from one framework to another
Ivy's transpiler allows you to use code from any other framework in your own code.
Feel free to head over to the docs for the full API
reference, but the functions you'd most likely want to use are:
# Converts framework-specific code to a target framework of choice. See usage in the documentationivy.transpile()
# Traces an efficient fully-functional graph from a function, removing all wrapping and redundant code. See usage in the documentationivy.trace_graph()
ivy.transpile will eagerly transpile if a class or function is provided
importivyimporttorchimporttensorflowastfdeftorch_fn(x):
x=torch.abs(x)
returntorch.sum(x)
x1=torch.tensor([1., 2.])
x1=tf.convert_to_tensor([1., 2.])
# Transpilation happens eagerlytf_fn=ivy.transpile(test_fn, source="torch", target="tensorflow")
# tf_fn is now tensorflow code and runs efficientlyret=tf_fn(x1)
ivy.transpile will lazily transpile if a module (library) is provided
importivyimportkorniaimporttensorflowastfx2=tf.random.normal((5, 3, 4, 4))
# Module is provided -> transpilation happens lazilytf_kornia=ivy.transpile(kornia, source="torch", target="tensorflow")
# The transpilation is initialized here, and this function is converted to tensorflowret=tf_kornia.color.rgb_to_grayscale(x2)
# Transpilation has already occurred, the tensorflow function runs efficientlyret=tf_kornia.color.rgb_to_grayscale(x2)
Contributing
We believe that everyone can contribute and make a difference. Whether
it's writing code, fixing bugs, or simply sharing feedback,
your contributions are definitely welcome and appreciated"
@article{lenton2021ivy,
title={Ivy: Templated deep learning for inter-framework portability},
author={Lenton, Daniel and Pardo, Fabio and Falck, Fabian and James, Stephen and Clark, Ronald},
journal={arXiv preprint arXiv:2102.02886},
year={2021}
}