helblazer811 / ManimML

ManimML is a project focused on providing animations and visualizations of common machine learning concepts with the Manim Community Library.
MIT License
2.27k stars 136 forks source link

Convolutional Neural Network Enhancements #15

Open helblazer811 opened 1 year ago

helblazer811 commented 1 year ago

I want to add the following features:

  1. [x] Max Pooling
  2. [x] Padding
  3. [x] Change the parameters for the Convolutional3d layers to be more ergonomic.
  4. [ ] Add an option to make the feature map appear as the filter scans across it rather than it being there all at once.
  5. [ ] Add a FlattenLayer that flattens a preceding convolutional layer.
  6. [ ] Add the ability to put random numbers into the cells of the feature maps.
helblazer811 commented 1 year ago

The max pooling visualization can work as follows:

  1. Draw boxes around the max pooling regions in the input feature maps.
  2. Randomly highlight a square from one of the boxes.
  3. Make an invisible set of reduced width and heigh output feature maps.
  4. Move each square to its corresponding location in the output feature map with an animation.
  5. Make the output feature map appear.
helblazer811 commented 1 year ago

Moved max pooling to its own issue: https://github.com/helblazer811/ManimML/issues/16

helblazer811 commented 1 year ago

For padding I probably want to add a dotted rectangle surrounding each of the feature maps. I will then need to make sure that when I do the convolution animation that I align with the corner there.

helblazer811 commented 1 year ago

[ ] Change the parameters of the Convolutional3D to be more ergonomic.

I want to make the parameters more similar to: https://pytorch.org/docs/stable/generated/torch.nn.Conv2d.html?highlight=conv2d#torch.nn.Conv2d

MacOS commented 8 months ago

Your suggestion "Add a FlattenLayer that flattens a preceding convolutional layer." is a duplicate of issue #24 .