YannDubs / ManimML

ManimML is a project focused on providing animations and visualizations of common machine learning concepts with the Manim Community Library.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ManimML

GitHub license GitHub tag Pypi Downloads Follow Twitter

ManimML is a project focused on providing animations and visualizations of common machine learning concepts with the Manim Community Library. We want this project to be a compilation of primitive visualizations that can be easily combined to create videos about complex machine learning concepts. Additionally, we want to provide a set of abstractions which allow users to focus on explanations instead of software engineering.

Table of Contents

  1. Getting Started
  2. Examples

Getting Started

First you will want to install manim.

Then install the package form source or pip install manim_ml

Then you can run the following to generate the example videos from python scripts.

manim -pqh src/vae.py VAEScene

Examples

Checkout the examples directory for some example videos with source code.

Neural Networks

This is a visualization of a Variational Autoencoder made using ManimML. It has a Pytorch style list of layers that can be composed in arbitrary order. The following video is made with the code from below.

class VariationalAutoencoderScene(Scene):

    def construct(self):
        embedding_layer = EmbeddingLayer(dist_theme="ellipse").scale(2)
        
        image = Image.open('images/image.jpeg')
        numpy_image = np.asarray(image)
        # Make nn
        neural_network = NeuralNetwork([
            ImageLayer(numpy_image, height=1.4),
            FeedForwardLayer(5),
            FeedForwardLayer(3),
            embedding_layer,
            FeedForwardLayer(3),
            FeedForwardLayer(5),
            ImageLayer(numpy_image, height=1.4),
        ], layer_spacing=0.1)

        neural_network.scale(1.3)

        self.play(Create(neural_network))
        self.play(neural_network.make_forward_pass_animation(run_time=15))

Generative Adversarial Network

This is a visualization of a Generative Adversarial Network made using ManimML.

VAE Disentanglement

This is a visualization of disentanglement with a Variational Autoencoder

About

ManimML is a project focused on providing animations and visualizations of common machine learning concepts with the Manim Community Library.

License:MIT License


Languages

Language:Python 99.6%Language:Makefile 0.4%