Skip to content

Proposal: Add Transfer Learning Architectures Starting with VGG16 #112

@Namesakenberg

Description

@Namesakenberg

Hello ,

I’d like to propose adding transfer learning support to PyDeepFlow, starting with the VGG16 architecture as the first implementation. VGG16 is a widely used, well-understood deep convolutional neural network that would add significant value and expand the library’s usability in computer vision tasks.

Prerequisites needed for VGG16:
Convolutional layers with 3x3 kernels, stride 1, and padding.

ReLU activation functions.

MaxPooling2D layers with 2x2 window and stride 2 for downsampling.

Flatten and fully connected dense layers.

Categorical cross-entropy loss and softmax output activation.

Weight initialization strategies like He or Xavier.

Checkpointing to save model weights.

GPU/CPU support for training.

Current status in PyDeepFlow:
The ConvLayer and Layer stacking mechanism (Multi_Layer_CNN) supports convolutions, activations, and dense layers.

ReLU activation is implemented.

ModelCheckpoint handles saving weights.

MaxPooling2D and AveragePooling2D were recently added (see #110). Could you please confirm if MaxPooling2D is fully integrated and supported in the current stable branch?

VGG16 Architecture summary:

Image

Input size: 224x224 RGB image.

13 convolutional layers grouped in 5 blocks each followed by max pooling:

Blocks 1 and 2 have 2 conv layers each.

Blocks 3, 4, and 5 have 3 conv layers each.

All conv layers use 3x3 filters with stride 1 and padding 1.

After conv blocks, flatten the output.

Fully connected layers: two layers with 4096 neurons each, followed by a final softmax output layer sized by the number of classes.

Implementing this from scratch within PyDeepFlow would provide users an easy access to classic transfer learning without external dependencies.

Looking forward to your feedback on feasibility and any guidelines for contribution.

Thanks.

Metadata

Metadata

Assignees

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions