Skip to content

feature request: Siamese Neural Network #27

@MechaCritter

Description

@MechaCritter

Is your feature request related to a problem? Please describe.
I would like to implement the class SiameseNeuralNetwork. It is currently under pyvisim/neural_networks. If you are new to the concept of Siamese Neural Net, you can check out this link here.

If you're new to the codebase, feel free to read the technical documentation here.

PLEASE: implementing this class requires understanding of deep learning and computer vision. Please do not commit random vibe-coded stuff without checking, as I will then reject those PRs. Please save me and save yourself time :)

Describe the solution you'd like
I defined a sketch for this class here. This is, however, only a sketch. If you have a better idea on how to implement this class, feel free to show your idea. But make sure it's a trainable torch.nn.Module network so that it can be trained properly within the PyTorch framework.

However, methods like encode and similarity_score remains, as these methods provide this class a similar interface with the rest of the codebase.

If you have time, you can research and come up with a way to train this neural net, and then provide the training guides in the docs here. Also, under tests/, you can write a small test suite where you train the neural net on a subsample of images from the OxfordFlowerDataset (under pyvisim/datasets, see the docs here) to see how the network performs when distinguishing between flowers of different labels.

Describe alternatives you've considered
If you have a better idea, feel free to come up with a completely different neural network. If you implement a network from a paper or from another GitHub repository, please cite the source.

Additional context

  • Siamese Neural Net literature:

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1Priority 1contributor neededNeeds a contributor to take over the issue/feature

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions