diff --git a/.gitignore b/.gitignore
index 6d38729..0bfd98c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,9 @@
+__pycache__
+manim_ml.egg-info/
+manim_ml/manim_ml.egg-info/
+dist
+manim_ml/media
media
-__pycache__
\ No newline at end of file
+pyproject.toml
+setup.cfg
+!examples/media
\ No newline at end of file
diff --git a/Readme.md b/Readme.md
index b800299..425de04 100644
--- a/Readme.md
+++ b/Readme.md
@@ -1,6 +1,6 @@
# Manim Machine Learning
-
+
[](https://github.com/helblazer811/ManimMachineLearning/blob/main/LICENSE.md)
@@ -28,16 +28,16 @@ Checkout the ```examples``` directory for some example videos with source code.
This is a visualization of a Variational Autoencoder.
-
+
### VAE Disentanglement
This is a visualization of disentanglement with a Variational Autoencoder
-
+
### Neural Networks
This is a visualization of a Neural Network.
-
+
diff --git a/src/disentanglement.py b/examples/disentanglement/disentanglement.py
similarity index 86%
rename from src/disentanglement.py
rename to examples/disentanglement/disentanglement.py
index db72353..4aea487 100644
--- a/src/disentanglement.py
+++ b/examples/disentanglement/disentanglement.py
@@ -1,7 +1,10 @@
"""This module is dedicated to visualizing VAE disentanglement"""
+import sys
+import os
+sys.path.append(os.environ["PROJECT_ROOT"])
from manim import *
-from neural_network import NeuralNetwork
-import util
+from manim_ml.neural_network import NeuralNetwork
+import manim_ml.util as util
import pickle
class VAEDecoder(VGroup):
@@ -19,11 +22,11 @@ class VAEDecoder(VGroup):
class DisentanglementVisualization(VGroup):
- def __init__(self, model_path="autoencoder_models/saved_models/model_dim2.pth", image_height=0.35):
+ def __init__(self, model_path=os.path.join(os.environ["PROJECT_ROOT"], "examples/variational_autoencoder/autoencoder_models/saved_models/model_dim2.pth"), image_height=0.35):
self.model_path = model_path
self.image_height = image_height
# Load disentanglement image objects
- with open("autoencoder_models/disentanglement.pkl", "rb") as f:
+ with open(os.path.join(os.environ["PROJECT_ROOT"], "examples/variational_autoencoder/autoencoder_models/disentanglement.pkl"), "rb") as f:
self.image_handler = pickle.load(f)
def make_disentanglement_generation_animation(self):
diff --git a/src/interpolation.py b/examples/interpolation/interpolation.py
similarity index 93%
rename from src/interpolation.py
rename to examples/interpolation/interpolation.py
index 2e11028..9928e87 100644
--- a/src/interpolation.py
+++ b/examples/interpolation/interpolation.py
@@ -6,8 +6,8 @@ sys.path.append(os.environ["PROJECT_ROOT"])
from manim import *
import pickle
import numpy as np
-import neural_network
-import variational_autoencoder
+import manim_ml.neural_network as neural_network
+import examples.variational_autoencoder.variational_autoencoder as variational_autoencoder
"""
The VAE Scene for the twitter video.
diff --git a/examples/DisentanglementScene.gif b/examples/media/DisentanglementScene.gif
similarity index 100%
rename from examples/DisentanglementScene.gif
rename to examples/media/DisentanglementScene.gif
diff --git a/examples/DisentanglementScene.mp4 b/examples/media/DisentanglementScene.mp4
similarity index 100%
rename from examples/DisentanglementScene.mp4
rename to examples/media/DisentanglementScene.mp4
diff --git a/examples/ManimMLLogo.gif b/examples/media/ManimMLLogo.gif
similarity index 100%
rename from examples/ManimMLLogo.gif
rename to examples/media/ManimMLLogo.gif
diff --git a/examples/NNImage.png b/examples/media/NNImage.png
similarity index 100%
rename from examples/NNImage.png
rename to examples/media/NNImage.png
diff --git a/examples/TestNeuralNetworkScene.gif b/examples/media/TestNeuralNetworkScene.gif
similarity index 100%
rename from examples/TestNeuralNetworkScene.gif
rename to examples/media/TestNeuralNetworkScene.gif
diff --git a/examples/TestNeuralNetworkScene.mp4 b/examples/media/TestNeuralNetworkScene.mp4
similarity index 100%
rename from examples/TestNeuralNetworkScene.mp4
rename to examples/media/TestNeuralNetworkScene.mp4
diff --git a/examples/VAEImage.png b/examples/media/VAEImage.png
similarity index 100%
rename from examples/VAEImage.png
rename to examples/media/VAEImage.png
diff --git a/examples/VAEScene.gif b/examples/media/VAEScene.gif
similarity index 100%
rename from examples/VAEScene.gif
rename to examples/media/VAEScene.gif
diff --git a/examples/VAEScene.mp4 b/examples/media/VAEScene.mp4
similarity index 100%
rename from examples/VAEScene.mp4
rename to examples/media/VAEScene.mp4
diff --git a/src/autoencoder_models/.DS_Store b/examples/variational_autoencoder/autoencoder_models/.DS_Store
similarity index 100%
rename from src/autoencoder_models/.DS_Store
rename to examples/variational_autoencoder/autoencoder_models/.DS_Store
diff --git a/src/__init__.py b/examples/variational_autoencoder/autoencoder_models/__init__.py
similarity index 100%
rename from src/__init__.py
rename to examples/variational_autoencoder/autoencoder_models/__init__.py
diff --git a/src/autoencoder_models/data/MNIST/raw/t10k-images-idx3-ubyte b/examples/variational_autoencoder/autoencoder_models/data/MNIST/raw/t10k-images-idx3-ubyte
similarity index 100%
rename from src/autoencoder_models/data/MNIST/raw/t10k-images-idx3-ubyte
rename to examples/variational_autoencoder/autoencoder_models/data/MNIST/raw/t10k-images-idx3-ubyte
diff --git a/src/autoencoder_models/data/MNIST/raw/t10k-images-idx3-ubyte.gz b/examples/variational_autoencoder/autoencoder_models/data/MNIST/raw/t10k-images-idx3-ubyte.gz
similarity index 100%
rename from src/autoencoder_models/data/MNIST/raw/t10k-images-idx3-ubyte.gz
rename to examples/variational_autoencoder/autoencoder_models/data/MNIST/raw/t10k-images-idx3-ubyte.gz
diff --git a/src/autoencoder_models/data/MNIST/raw/t10k-labels-idx1-ubyte b/examples/variational_autoencoder/autoencoder_models/data/MNIST/raw/t10k-labels-idx1-ubyte
similarity index 100%
rename from src/autoencoder_models/data/MNIST/raw/t10k-labels-idx1-ubyte
rename to examples/variational_autoencoder/autoencoder_models/data/MNIST/raw/t10k-labels-idx1-ubyte
diff --git a/src/autoencoder_models/data/MNIST/raw/t10k-labels-idx1-ubyte.gz b/examples/variational_autoencoder/autoencoder_models/data/MNIST/raw/t10k-labels-idx1-ubyte.gz
similarity index 100%
rename from src/autoencoder_models/data/MNIST/raw/t10k-labels-idx1-ubyte.gz
rename to examples/variational_autoencoder/autoencoder_models/data/MNIST/raw/t10k-labels-idx1-ubyte.gz
diff --git a/src/autoencoder_models/data/MNIST/raw/train-images-idx3-ubyte b/examples/variational_autoencoder/autoencoder_models/data/MNIST/raw/train-images-idx3-ubyte
similarity index 100%
rename from src/autoencoder_models/data/MNIST/raw/train-images-idx3-ubyte
rename to examples/variational_autoencoder/autoencoder_models/data/MNIST/raw/train-images-idx3-ubyte
diff --git a/src/autoencoder_models/data/MNIST/raw/train-images-idx3-ubyte.gz b/examples/variational_autoencoder/autoencoder_models/data/MNIST/raw/train-images-idx3-ubyte.gz
similarity index 100%
rename from src/autoencoder_models/data/MNIST/raw/train-images-idx3-ubyte.gz
rename to examples/variational_autoencoder/autoencoder_models/data/MNIST/raw/train-images-idx3-ubyte.gz
diff --git a/src/autoencoder_models/data/MNIST/raw/train-labels-idx1-ubyte b/examples/variational_autoencoder/autoencoder_models/data/MNIST/raw/train-labels-idx1-ubyte
similarity index 100%
rename from src/autoencoder_models/data/MNIST/raw/train-labels-idx1-ubyte
rename to examples/variational_autoencoder/autoencoder_models/data/MNIST/raw/train-labels-idx1-ubyte
diff --git a/src/autoencoder_models/data/MNIST/raw/train-labels-idx1-ubyte.gz b/examples/variational_autoencoder/autoencoder_models/data/MNIST/raw/train-labels-idx1-ubyte.gz
similarity index 100%
rename from src/autoencoder_models/data/MNIST/raw/train-labels-idx1-ubyte.gz
rename to examples/variational_autoencoder/autoencoder_models/data/MNIST/raw/train-labels-idx1-ubyte.gz
diff --git a/src/autoencoder_models/disentanglement.pkl b/examples/variational_autoencoder/autoencoder_models/disentanglement.pkl
similarity index 100%
rename from src/autoencoder_models/disentanglement.pkl
rename to examples/variational_autoencoder/autoencoder_models/disentanglement.pkl
diff --git a/src/autoencoder_models/generate_disentanglement.py b/examples/variational_autoencoder/autoencoder_models/generate_disentanglement.py
similarity index 100%
rename from src/autoencoder_models/generate_disentanglement.py
rename to examples/variational_autoencoder/autoencoder_models/generate_disentanglement.py
diff --git a/src/autoencoder_models/generate_images.py b/examples/variational_autoencoder/autoencoder_models/generate_images.py
similarity index 100%
rename from src/autoencoder_models/generate_images.py
rename to examples/variational_autoencoder/autoencoder_models/generate_images.py
diff --git a/src/autoencoder_models/generate_interpolation.py b/examples/variational_autoencoder/autoencoder_models/generate_interpolation.py
similarity index 100%
rename from src/autoencoder_models/generate_interpolation.py
rename to examples/variational_autoencoder/autoencoder_models/generate_interpolation.py
diff --git a/src/autoencoder_models/image_pairs.pkl b/examples/variational_autoencoder/autoencoder_models/image_pairs.pkl
similarity index 100%
rename from src/autoencoder_models/image_pairs.pkl
rename to examples/variational_autoencoder/autoencoder_models/image_pairs.pkl
diff --git a/src/autoencoder_models/interpolations.pkl b/examples/variational_autoencoder/autoencoder_models/interpolations.pkl
similarity index 100%
rename from src/autoencoder_models/interpolations.pkl
rename to examples/variational_autoencoder/autoencoder_models/interpolations.pkl
diff --git a/src/autoencoder_models/saved_models/model_dim16.pth b/examples/variational_autoencoder/autoencoder_models/saved_models/model_dim16.pth
similarity index 100%
rename from src/autoencoder_models/saved_models/model_dim16.pth
rename to examples/variational_autoencoder/autoencoder_models/saved_models/model_dim16.pth
diff --git a/src/autoencoder_models/saved_models/model_dim2.pth b/examples/variational_autoencoder/autoencoder_models/saved_models/model_dim2.pth
similarity index 100%
rename from src/autoencoder_models/saved_models/model_dim2.pth
rename to examples/variational_autoencoder/autoencoder_models/saved_models/model_dim2.pth
diff --git a/src/autoencoder_models/saved_models/model_dim2_cnn.pth b/examples/variational_autoencoder/autoencoder_models/saved_models/model_dim2_cnn.pth
similarity index 100%
rename from src/autoencoder_models/saved_models/model_dim2_cnn.pth
rename to examples/variational_autoencoder/autoencoder_models/saved_models/model_dim2_cnn.pth
diff --git a/src/autoencoder_models/saved_models/model_dim5.pth b/examples/variational_autoencoder/autoencoder_models/saved_models/model_dim5.pth
similarity index 100%
rename from src/autoencoder_models/saved_models/model_dim5.pth
rename to examples/variational_autoencoder/autoencoder_models/saved_models/model_dim5.pth
diff --git a/src/autoencoder_models/variational_autoencoder.py b/examples/variational_autoencoder/autoencoder_models/variational_autoencoder.py
similarity index 97%
rename from src/autoencoder_models/variational_autoencoder.py
rename to examples/variational_autoencoder/autoencoder_models/variational_autoencoder.py
index 229acd2..a3363c7 100644
--- a/src/autoencoder_models/variational_autoencoder.py
+++ b/examples/variational_autoencoder/autoencoder_models/variational_autoencoder.py
@@ -198,7 +198,12 @@ def train_model(latent_dim=16, plot=True, digit=1, epochs=200):
losses.append(loss.detach().cpu())
outputs.append((epochs, image, reconstructed))
- torch.save(model.state_dict(), os.path.join(os.environ["PROJECT_ROOT"], f"saved_models/model_dim{latent_dim}.pth"))
+ torch.save(model.state_dict(),
+ os.path.join(
+ os.environ["PROJECT_ROOT"],
+ f"examples/variational_autoencoder/autoencoder_model/saved_models/model_dim{latent_dim}.pth"
+ )
+ )
if plot:
# Defining the Plot Style
diff --git a/src/variational_autoencoder.py b/examples/variational_autoencoder/variational_autoencoder.py
similarity index 98%
rename from src/variational_autoencoder.py
rename to examples/variational_autoencoder/variational_autoencoder.py
index d6b4fb2..6322150 100644
--- a/src/variational_autoencoder.py
+++ b/examples/variational_autoencoder/variational_autoencoder.py
@@ -8,7 +8,7 @@ from manim import *
import pickle
import numpy as np
import os
-import neural_network
+import manim_ml.neural_network as neural_network
class VariationalAutoencoder(VGroup):
"""Variational Autoencoder Manim Visualization"""
@@ -244,8 +244,8 @@ class MNISTImageHandler():
def __init__(
self,
- image_pairs_file_path=os.path.join(os.environ["PROJECT_ROOT"], "autoencoder_models/image_pairs.pkl"),
- interpolations_file_path=os.path.join(os.environ["PROJECT_ROOT"], "autoencoder_models/interpolations.pkl")
+ image_pairs_file_path=os.path.join(os.environ["PROJECT_ROOT"], "examples/variational_autoencoder/autoencoder_models/image_pairs.pkl"),
+ interpolations_file_path=os.path.join(os.environ["PROJECT_ROOT"], "examples/variational_autoencoder/autoencoder_models/interpolations.pkl")
):
self.image_pairs_file_path = image_pairs_file_path
self.interpolations_file_path = interpolations_file_path
diff --git a/src/autoencoder_models/__init__.py b/manim_ml/__init__.py
similarity index 100%
rename from src/autoencoder_models/__init__.py
rename to manim_ml/__init__.py
diff --git a/src/logo.py b/manim_ml/logo.py
similarity index 100%
rename from src/logo.py
rename to manim_ml/logo.py
diff --git a/src/neural_network.py b/manim_ml/neural_network.py
similarity index 100%
rename from src/neural_network.py
rename to manim_ml/neural_network.py
diff --git a/src/probability_embedding.py b/manim_ml/probability_embedding.py
similarity index 100%
rename from src/probability_embedding.py
rename to manim_ml/probability_embedding.py
diff --git a/src/util.py b/manim_ml/util.py
similarity index 100%
rename from src/util.py
rename to manim_ml/util.py