Machine Learning Animations in python using Manim.
Project description
ManimML
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
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 examples/cnn/cnn.py
Examples
Checkout the examples
directory for some example videos with source code.
Convolutional Neural Network
This is a visualization of a Convolutional Neural Network.
from manim import *
from PIL import Image
from manim_ml.neural_network.layers.convolutional_2d import Convolutional2DLayer
from manim_ml.neural_network.layers.feed_forward import FeedForwardLayer
from manim_ml.neural_network.layers.image import ImageLayer
from manim_ml.neural_network.neural_network import NeuralNetwork
class ConvolutinoalNetworkScene(Scene):
def construct(self):
image = Image.open(ROOT_DIR / "assets/mnist/digit.jpeg")
numpy_image = np.asarray(image)
# Make nn
nn = NeuralNetwork([
ImageLayer(numpy_image, height=1.5),
Convolutional2DLayer(1, 7, 3, filter_spacing=0.32),
Convolutional2DLayer(3, 5, 3, filter_spacing=0.32),
Convolutional2DLayer(5, 3, 3, filter_spacing=0.18),
FeedForwardLayer(3),
FeedForwardLayer(3),
],
layer_spacing=0.25,
)
# Center the nn
nn.move_to(ORIGIN)
self.add(nn)
self.play(neural_network.make_forward_pass_animation())
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for manim_ml-0.0.13-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6aa340b7e3334cf90814c4e20106e78cc536f905f6d110d78e5a1057c2a72ce7 |
|
MD5 | 4f131d7eb45a7fa602a2553febb412af |
|
BLAKE2b-256 | 3aad8ee2f32ef966ad18ba7646567d3f0843af622a4b4130416e4a4fd741f6bc |