""" Definition of the class of models with 2 hidden layers. """ import torch from torch import nn class MLP_C2H2(nn.Module): def __init__(self, input_size=1024, hidden_size_1=512, hidden_size_2=256 ): super().__init__() self.input_size = input_size self.hidden_size_1 = hidden_size_1 self.hidden_size_2 = hidden_size_2 self.model = torch.nn.ModuleList( [ nn.Linear(self.input_size, self.hidden_size_1), nn.ReLU(), ] + [ nn.Linear(self.hidden_size_1, self.hidden_size_2), nn.ReLU(), ] + [ nn.Linear(self.hidden_size_2, 1), nn.Sigmoid() ] ) self.loss_function = nn.BCELoss() def forward(self, point): for layer in self.model: point = layer(point) return point def calculate_loss(self, point, label): return self.loss_function(point, label)