secmlt.models.pytorch package
Submodules
secmlt.models.pytorch.base_pytorch_nn module
Wrappers for PyTorch models.
- class secmlt.models.pytorch.base_pytorch_nn.BasePytorchClassifier(model: torch.nn.Module, preprocessing: DataProcessing | None = None, postprocessing: DataProcessing | None = None, trainer: BasePyTorchTrainer | None = None)[source]
Bases:
BaseModel
Wrapper for PyTorch classifier.
- __init__(model: torch.nn.Module, preprocessing: DataProcessing | None = None, postprocessing: DataProcessing | None = None, trainer: BasePyTorchTrainer | None = None) None [source]
Create wrapped PyTorch classifier.
- Parameters:
model (torch.nn.Module) – PyTorch model.
preprocessing (DataProcessing, optional) – Preprocessing to apply before the forward., by default None.
postprocessing (DataProcessing, optional) – Postprocessing to apply after the forward, by default None.
trainer (BasePyTorchTrainer, optional) – Trainer object to train the model, by default None.
- _decision_function(x: torch.Tensor) torch.Tensor [source]
Compute decision function of the model.
- Parameters:
x (torch.Tensor) – Input samples.
- Returns:
Output scores from the model.
- Return type:
torch.Tensor
- gradient(x: torch.Tensor, y: int) torch.Tensor [source]
Compute batch gradients of class y w.r.t. x.
- Parameters:
x (torch.Tensor) – Input samples.
y (int) – Class label.
- Returns:
Gradient of class y w.r.t. input x.
- Return type:
torch.Tensor
- property model: torch.nn.Module
Get the wrapped instance of PyTorch model.
- Returns:
Wrapped PyTorch model.
- Return type:
torch.nn.Module
- predict(x: torch.Tensor) torch.Tensor [source]
Return the predicted class for the given samples.
- Parameters:
x (torch.Tensor) – Input samples.
- Returns:
Predicted class for the samples.
- Return type:
torch.Tensor
- train(dataloader: torch.utils.data.DataLoader) torch.nn.Module [source]
Train the model with given dataloader, if trainer is set.
- Parameters:
dataloader (DataLoader) – Training PyTorch dataloader to use for training.
- Returns:
Trained PyTorch model.
- Return type:
torch.nn.Module
- Raises:
ValueError – Raises ValueError if the trainer is not set.
secmlt.models.pytorch.base_pytorch_trainer module
PyTorch model trainers.
- class secmlt.models.pytorch.base_pytorch_trainer.BasePyTorchTrainer(optimizer: torch.optim.Optimizer, epochs: int = 5, loss: torch.nn.Module | None = None, scheduler: torch.optim.lr_scheduler._LRScheduler | None = None)[source]
Bases:
BaseTrainer
Trainer for PyTorch models.
- __init__(optimizer: torch.optim.Optimizer, epochs: int = 5, loss: torch.nn.Module | None = None, scheduler: torch.optim.lr_scheduler._LRScheduler | None = None) None [source]
Create PyTorch trainer.
- Parameters:
optimizer (torch.optim.Optimizer) – Optimizer to use for training the model.
epochs (int, optional) – Number of epochs, by default 5.
loss (torch.nn.Module, optional) – Loss to minimize, by default None.
scheduler (_LRScheduler, optional) – Scheduler for the optimizer, by default None.
secmlt.models.pytorch.early_stopping_pytorch_trainer module
PyTorch model trainers with early stopping.
- class secmlt.models.pytorch.early_stopping_pytorch_trainer.EarlyStoppingPyTorchTrainer(optimizer: torch.optim.Optimizer, epochs: int = 5, loss: torch.nn.Module | None = None, scheduler: torch.optim.lr_scheduler._LRScheduler | None = None)[source]
Bases:
BasePyTorchTrainer
Trainer for PyTorch models with early stopping.
- __init__(optimizer: torch.optim.Optimizer, epochs: int = 5, loss: torch.nn.Module | None = None, scheduler: torch.optim.lr_scheduler._LRScheduler | None = None) None [source]
Create PyTorch trainer.
- Parameters:
optimizer (torch.optim.Optimizer) – Optimizer to use for training the model.
epochs (int, optional) – Number of epochs, by default 5.
loss (torch.nn.Module, optional) – Loss to minimize, by default None.
scheduler (_LRScheduler, optional) – Scheduler for the optimizer, by default None.
- fit(model: torch.nn.Module, train_loader: torch.utils.data.DataLoader, val_loader: torch.utils.data.DataLoader, patience: int) torch.nn.Module [source]
Train model with given loaders and early stopping.
- Parameters:
model (torch.nn.Module) – Pytorch model to be trained.
train_loader (DataLoader) – Train data loader.
val_loader (DataLoader) – Validation data loader.
patience (int) – Number of epochs to wait before early stopping.
- Returns:
Trained model.
- Return type:
torch.nn.Module
- train(model: torch.nn.Module, dataloader: torch.utils.data.DataLoader) torch.nn.Module [source]
Train model for one epoch with given loader.
- Parameters:
model (torch.nn.Module) – Pytorch model to be trained.
dataloader (DataLoader) – Train data loader.
- Returns:
Trained model.
- Return type:
torch.nn.Module
- validate(model: torch.nn.Module, dataloader: torch.utils.data.DataLoader) float [source]
Validate model with given loader.
- Parameters:
model (torch.nn.Module) – Pytorch model to be balidated.
dataloader (DataLoader) – Validation data loader.
- Returns:
Validation loss of the model.
- Return type:
float
Module contents
PyTorch model wrappers.