Abstract: We introduce Ivy, a templated Deep Learning (DL) framework which abstracts
existing DL frameworks such that their core functions all exhibit consistent
call signatures, syntax and input-output behaviour. Ivy allows high-level
framework-agnostic functions to be implemented through the use of framework
templates. The framework templates act as placeholders for the specific
framework at development time, which are then determined at runtime. The
portability of Ivy functions enables their use in projects of any supported
framework. Ivy currently supports TensorFlow, PyTorch, MXNet, Jax and NumPy.
Alongside Ivy, we release four pure-Ivy libraries for mechanics, 3D vision,
robotics, and differentiable environments. Through our evaluations, we show
that Ivy can significantly reduce lines of code with a runtime overhead of less
than 1% in most cases. We welcome developers to join the Ivy community by
writing their own functions, layers and libraries in Ivy, maximizing their
audience and helping to accelerate DL research through the creation of lifelong
inter-framework codebases. More information can be found at ivy-dl.org.