face-similarity-demo / app /Hackathon_setup /face_recognition_model_bkp.py
Kousik Kumar Siddavaram
Added backup files again
852a5d6
import math
import torch
import torchvision
import torch.nn as nn
import torch.nn.functional as F
from torchvision import transforms
# Add more imports if required
# ---------------------------
# Transformation Function
# ---------------------------
# Same transforms as used during training in Colab
trnscm = transforms.Compose([
transforms.Resize((100, 100)),
transforms.ToTensor()
])
# ---------------------------
# Siamese Network Definition
# ---------------------------
class Siamese(torch.nn.Module):
def __init__(self):
super(Siamese, self).__init__()
# CNN layers (same as your Colab model)
self.cnn1 = nn.Sequential(
nn.ReflectionPad2d(1),
nn.Conv2d(1, 4, kernel_size=3),
nn.ReLU(inplace=True),
nn.BatchNorm2d(4),
nn.ReflectionPad2d(1),
nn.Conv2d(4, 8, kernel_size=3),
nn.ReLU(inplace=True),
nn.BatchNorm2d(8),
nn.ReflectionPad2d(1),
nn.Conv2d(8, 8, kernel_size=3),
nn.ReLU(inplace=True),
nn.BatchNorm2d(8)
)
# Fully connected layers
self.fc1 = nn.Sequential(
nn.Linear(8 * 100 * 100, 500),
nn.ReLU(inplace=True),
nn.Linear(500, 500),
nn.ReLU(inplace=True),
nn.Linear(500, 5)
)
def forward_once(self, x):
# Forward pass for one image
output = self.cnn1(x)
output = output.view(output.size()[0], -1)
output = self.fc1(output)
return output
def forward(self, x1, x2):
# Forward pass for both images
output1 = self.forward_once(x1)
output2 = self.forward_once(x2)
return output1, output2
##########################################################################################################
## Sample classification network (Specify if you are using a pytorch classifier during the training) ##
## classifier = nn.Sequential(nn.Linear(64, 64), nn.BatchNorm1d(64), nn.ReLU(), nn.Linear...) ##
##########################################################################################################
# Not used for face similarity β€” so keep it as None
classifier = None
# ---------------------------
# Class labels (optional)
# ---------------------------
classes = ['person1', 'person2', 'person3', 'person4', 'person5', 'person6', 'person7']