Ivy as a Framework

On the Building Blocks page, we explored the role of the backend functional APIs, the Ivy functional API, the framework handler and the graph compiler. These are parts are labelled as (a) in the image below.

On the Ivy as a Transpiler page, we explained the role of the backend-specific frontends in Ivy, and how these enable automatic code conversions between different ML frameworks. This part is labelled as (b) in the image below.

So far, by considering parts (a) and (b), we have mainly treated Ivy as a fully functional framework with code conversion abilities. Ivy builds on these primitives to create a fully-fledged ML framework with stateful classes, optimizers and convenience tools to get ML experiments running in very few lines of code.

Specifically, here we consider the ivy.Container class, the ivy.Array class and the stateful API. These parts are labelled as (c) in the image below.

https://github.com/unifyai/unifyai.github.io/blob/master/img/externally_linked/design/submodule_dependency_graph.png?raw=true

You may choose from the following upcoming discussions or click next.

Hierarchical container solving almost everything behind the scenes in Ivy

Trainable Layers, Modules, Optimizers and more built on the functional API and the Ivy Container

Bringing methods as array attributes to Ivy, cleaning up and simplifying code

Round Up

Hopefully this has given you a good idea of how Ivy can be used as a fully-fledged ML framework.

Please reach out on discord if you have any questions!