Classifier

class eyefeatures.deep.models.Classifier(backbone, n_classes, classifier_hidden_layers=(), classifier_activation=ReLU(), learning_rate=0.001, optimizer_class=<class 'torch.optim.adamw.AdamW'>, optimizer_params=None, scheduler_class=None, scheduler_params=None)[source]

Bases: BaseModel

A classification model built on top of the BaseModel, with additional accuracy, precision, recall, and F1-score tracking.

Parameters:
  • backbone (ModuleList | Module) – (Union[nn.ModuleList, nn.Module]) The feature extraction backbone model.

  • n_classes – (int) Number of output classes.

  • classifier_hidden_layers – (Tuple, optional) Tuple of hidden layer sizes for the classifier. Default is empty.

  • classifier_activation – (nn.Module, optional) Activation function to use in the classifier. Default is ReLU.

  • learning_rate – (float, optional) Learning rate for the optimizer. Default is 1e-3.

  • optimizer_class (Callable) – (Callable, optional) Optimizer class to use. Default is AdamW.

  • optimizer_params (dict | None) – (dict, optional) Additional parameters for the optimizer. Default is None.

  • scheduler_class (Callable | None) – (Callable, optional) Scheduler class to use. Default is None.

  • scheduler_params (dict | None) – (dict, optional) Additional parameters for the scheduler. Default is None.

Returns:

Output logits after the forward pass through the classifier.