Neural Networks¶
Example: MySimpleNeuralNetworkScene ¶
Code: MySimpleNeuralNetworkScene
import manim as m
from manta.color_theme.catppucin.catppuccin_mocha import CatppuccinMochaTheme
from manta.components.neural_networks_utils import NeuralNetworkUtils
from manta.slide_templates.minimal.minimal_slide_template import MinimalSlideTemplate
class MySimpleNeuralNetworkScene(NeuralNetworkUtils, MinimalSlideTemplate):
subtitle_color = CatppuccinMochaTheme.yellow
title_seperator_color = CatppuccinMochaTheme.magenta
def construct(self):
nn = self.simple_neural_network()
nn.scale(2.0) # make the network a bit bigger
self.play(
self.set_title_row(
title="NeuralNetworkUtils",
seperator=": ",
subtitle="Simple Neural Network"
),
m.FadeIn(nn),
)
if __name__ == '__main__':
MySimpleNeuralNetworkScene.render_video_medium()
Example: MyTwoHeadedNeuralNetworkScene ¶
Code: MyTwoHeadedNeuralNetworkScene
import manim as m
from manta.color_theme.catppucin.catppuccin_mocha import CatppuccinMochaTheme
from manta.components.neural_networks_utils import NeuralNetworkUtils
from manta.slide_templates.minimal.minimal_slide_template import MinimalSlideTemplate
class MyTwoHeadedNeuralNetworkScene(NeuralNetworkUtils, MinimalSlideTemplate):
subtitle_color = CatppuccinMochaTheme.yellow
title_seperator_color = CatppuccinMochaTheme.magenta
def construct(self):
nn = self.two_headed_network()
nn.scale(1.5) # make the network a bit bigger
self.play(
self.set_title_row(
title="NeuralNetworkUtils",
seperator=": ",
subtitle="Two Headed Neural Network",
),
m.FadeIn(nn),
)
if __name__ == '__main__':
MyTwoHeadedNeuralNetworkScene.render_video_medium()
Example: MyNetworkAnimationScene ¶
Code: MyNetworkAnimationScene
import manim as m
from manta.color_theme.catppucin.catppuccin_mocha import CatppuccinMochaTheme
from manta.components.neural_networks_utils import NeuralNetworkUtils
from manta.slide_templates.minimal.minimal_slide_template import MinimalSlideTemplate
class MyNetworkAnimationScene(NeuralNetworkUtils, MinimalSlideTemplate):
subtitle_color = CatppuccinMochaTheme.yellow
title_seperator_color = CatppuccinMochaTheme.magenta
def construct(self):
nn = self.simple_neural_network(
# make the blue for more contrast
arrow_kwargs={"color": self.blue,},
neuron_circle_kwargs={"stroke_color": self.blue, "fill_color": self.green, "fill_opacity": 0.2},
)
nn.scale(2.0) # scale the neural network
self.play(
self.set_title_row(
title="NeuralNetworkUtils",
seperator=": ",
subtitle="simple_neural_network_forward_animation",
),
m.FadeIn(nn),
)
self.play(
self.simple_neural_network_forward_animation(nn),
)
self.play(
self.simple_neural_network_forward_animation(
nn,
color=self.red,
run_time=2.5
),
)
self.play(
self.simple_neural_network_forward_animation(
nn,
color=self.yellow,
run_time=2.5
),
)
self.wait(0.25)
self.fade_out_scene()
if __name__ == '__main__':
MyNetworkAnimationScene.render_video_medium()
Example: MyTwoHeadedNeuralNetworkAnimationScene ¶
Code: MyTwoHeadedNeuralNetworkAnimationScene
import manim as m
from manta.color_theme.catppucin.catppuccin_mocha import CatppuccinMochaTheme
from manta.components.neural_networks_utils import NeuralNetworkUtils
from manta.slide_templates.minimal.minimal_slide_template import MinimalSlideTemplate
class MyTwoHeadedNeuralNetworkAnimationScene(NeuralNetworkUtils, MinimalSlideTemplate):
subtitle_color = CatppuccinMochaTheme.yellow
title_seperator_color = CatppuccinMochaTheme.magenta
def construct(self):
two_headed_nn = self.two_headed_network()
self.play(
self.set_title_row(
title="NeuralNetworkUtils",
seperator=": ",
subtitle="two_headed_neural_network_forward_animation",
),
m.FadeIn(two_headed_nn),
)
self.play(
self.two_headed_neural_network_forward_animation(
two_headed_nn,
color=self.cyan
),
)
self.play(
m.Transform(
two_headed_nn,
self.two_headed_network(
shared_network_kwargs={
"input_layer_dim": 12,
"hidden_layer_dim": 10,
"hidden_layer_n": 3,
"output_layer_dim": 9,
},
shared_network_color=self.green,
top_head_network_kwargs={
"input_layer_dim": 4,
"hidden_layer_dim": 3,
"hidden_layer_n": 2,
"output_layer_dim": 2,
},
top_head_network_color=self.cyan,
bottom_networks_kwargs={
"input_layer_dim": 2,
"hidden_layer_dim": 2,
"hidden_layer_n": 3,
"output_layer_dim": 2,
},
bottom_networks_color=self.magenta,
)
)
)
self.play(
self.two_headed_neural_network_forward_animation(
two_headed_nn,
color=self.green,
run_time=2.0
),
)
if __name__ == '__main__':
MyTwoHeadedNeuralNetworkAnimationScene.render_video_medium()
Example: MyNeuralNetworkExample ¶
Code: MyNeuralNetworkExample
import manim as m
from manta.color_theme.catppucin.catppuccin_mocha import CatppuccinMochaTheme
from manta.components.neural_networks_utils import NeuralNetworkUtils
from manta.slide_templates.minimal.minimal_slide_template import MinimalSlideTemplate
class MyNeuralNetworkExample(NeuralNetworkUtils, MinimalSlideTemplate):
subtitle_color = CatppuccinMochaTheme.yellow
title_seperator_color = CatppuccinMochaTheme.magenta
def construct(self):
self.play(
self.set_title_row(
title="Neural Networks",
)
)
example_nn = self.simple_neural_network()
self.play(
m.AnimationGroup(
self.change_subtitle("Simple Neural Network"),
m.FadeIn(example_nn),
lag_ratio=0.85
)
)
self.play(
m.AnimationGroup(
self.change_subtitle("Simple Neural Network Forward Pass Animation"),
self.simple_neural_network_forward_animation(example_nn, color=self.yellow_bright),
lag_ratio=0.85
)
)
self.play(
m.AnimationGroup(
self.change_subtitle("Simple Neural Network with different architecture"),
m.Transform(
example_nn,
self.simple_neural_network(
input_layer_dim=7,
hidden_layer_dim=5,
hidden_layer_n=3,
output_layer_dim=3,
)
),
lag_ratio=0.85
)
)
self.play(
m.AnimationGroup(
self.change_subtitle("Two Headed Neural Network"),
m.Transform(
example_nn,
self.two_headed_network()
),
lag_ratio=0.85
)
)
self.play(
m.AnimationGroup(
self.change_subtitle("Two Headed Neural Network"),
m.Transform(
example_nn,
self.two_headed_network(
shared_network_kwargs={
"input_layer_dim": 12,
"hidden_layer_dim": 10,
"hidden_layer_n": 3,
"output_layer_dim": 9,
},
shared_network_color=self.green,
top_head_network_kwargs={
"input_layer_dim": 4,
"hidden_layer_dim": 3,
"hidden_layer_n": 2,
"output_layer_dim": 2,
},
top_head_network_color=self.cyan,
bottom_networks_kwargs={
"input_layer_dim": 2,
"hidden_layer_dim": 2,
"hidden_layer_n": 3,
"output_layer_dim": 2,
},
bottom_networks_color=self.magenta,
)
),
lag_ratio=0.85
)
)
self.fade_out_scene()
if __name__ == '__main__':
MyNeuralNetworkExample.render_video_medium()