Classification¶
ClassificationNetworkBasePyTorch¶
-
class
ClassificationNetworkBasePyTorch
(in_channels: int, n_outputs: int, **kwargs)[source]¶ Bases:
delira.models.abstract_network.AbstractPyTorchNetwork
Implements basic classification with ResNet18
References
https://arxiv.org/abs/1512.03385
See also
AbstractPyTorchNetwork
-
static
_build_model
(in_channels: int, n_outputs: int, **kwargs)[source]¶ builds actual model (resnet 18)
Parameters: Returns: created model
Return type:
-
_init_kwargs
= {}¶
-
static
closure
(model: delira.models.abstract_network.AbstractPyTorchNetwork, data_dict: dict, optimizers: dict, criterions={}, metrics={}, fold=0, **kwargs)[source]¶ closure method to do a single backpropagation step
Parameters: - model (
ClassificationNetworkBasePyTorch
) – trainable model - data_dict (dict) – dictionary containing the data
- optimizers (dict) – dictionary of optimizers to optimize model’s parameters
- criterions (dict) – dict holding the criterions to calculate errors (gradients from different criterions will be accumulated)
- metrics (dict) – dict holding the metrics to calculate
- fold (int) – Current Fold in Crossvalidation (default: 0)
- **kwargs – additional keyword arguments
Returns: - dict – Metric values (with same keys as input dict metrics)
- dict – Loss values (with same keys as input dict criterions)
- list – Arbitrary number of predictions as torch.Tensor
Raises: AssertionError
– if optimizers or criterions are empty or the optimizers are not specified- model (
-
forward
(input_batch: <sphinx.ext.autodoc.importer._MockObject object at 0x7fc9578fd828>)[source]¶ Forward input_batch through network
Parameters: input_batch (torch.Tensor) – batch to forward through network Returns: Classification Result Return type: torch.Tensor
-
static
prepare_batch
(batch: dict, input_device, output_device)[source]¶ Helper Function to prepare Network Inputs and Labels (convert them to correct type and shape and push them to correct devices)
Parameters: - batch (dict) – dictionary containing all the data
- input_device (torch.device) – device for network inputs
- output_device (torch.device) – device for network outputs
Returns: dictionary containing data in correct type and shape and on correct device
Return type:
-
static
VGG3DClassificationNetworkPyTorch¶
-
class
VGG3DClassificationNetworkPyTorch
(in_channels: int, n_outputs: int, **kwargs)[source]¶ Bases:
delira.models.classification.classification_network.ClassificationNetworkBasePyTorch
Exemplaric VGG Network for 3D Classification
Notes
The original network has been adjusted to fit for 3D data
References
https://arxiv.org/abs/1409.1556
See also
-
static
_build_model
(in_channels: int, n_outputs: int, **kwargs)[source]¶ Helper Function to build the actual model
Parameters: Returns: ensembeled model
Return type:
-
_init_kwargs
= {}¶
-
static
closure
(model: delira.models.abstract_network.AbstractPyTorchNetwork, data_dict: dict, optimizers: dict, criterions={}, metrics={}, fold=0, **kwargs)¶ closure method to do a single backpropagation step
Parameters: - model (
ClassificationNetworkBasePyTorch
) – trainable model - data_dict (dict) – dictionary containing the data
- optimizers (dict) – dictionary of optimizers to optimize model’s parameters
- criterions (dict) – dict holding the criterions to calculate errors (gradients from different criterions will be accumulated)
- metrics (dict) – dict holding the metrics to calculate
- fold (int) – Current Fold in Crossvalidation (default: 0)
- **kwargs – additional keyword arguments
Returns: - dict – Metric values (with same keys as input dict metrics)
- dict – Loss values (with same keys as input dict criterions)
- list – Arbitrary number of predictions as torch.Tensor
Raises: AssertionError
– if optimizers or criterions are empty or the optimizers are not specified- model (
-
forward
(input_batch: <sphinx.ext.autodoc.importer._MockObject object at 0x7fc9578fd828>)¶ Forward input_batch through network
Parameters: input_batch (torch.Tensor) – batch to forward through network Returns: Classification Result Return type: torch.Tensor
-
static
prepare_batch
(batch: dict, input_device, output_device)¶ Helper Function to prepare Network Inputs and Labels (convert them to correct type and shape and push them to correct devices)
Parameters: - batch (dict) – dictionary containing all the data
- input_device (torch.device) – device for network inputs
- output_device (torch.device) – device for network outputs
Returns: dictionary containing data in correct type and shape and on correct device
Return type:
-
static
ClassificationNetworkBaseTf¶
-
class
ClassificationNetworkBaseTf
(in_channels: int, n_outputs: int, **kwargs)[source]¶ Bases:
delira.models.abstract_network.AbstractTfNetwork
Implements basic classification with ResNet18
See also
AbstractTfNetwork
-
_add_losses
(losses: dict)[source]¶ Adds losses to model that are to be used by optimizers or during evaluation
Parameters: losses (dict) – dictionary containing all losses. Individual losses are averaged
-
_add_optims
(optims: dict)[source]¶ Adds optims to model that are to be used by optimizers or during training
Parameters: optim (dict) – dictionary containing all optimizers, optimizers should be of Type[tf.train.Optimizer]
-
static
_build_model
(n_outputs: int, **kwargs)[source]¶ builds actual model (resnet 18)
Parameters: - n_outputs (int) – number of outputs (usually same as number of classes)
- **kwargs – additional keyword arguments
Returns: created model
Return type: tf.keras.Model
-
_init_kwargs
= {}¶
-
static
closure
(model: Type[delira.models.abstract_network.AbstractTfNetwork], data_dict: dict, metrics={}, fold=0, **kwargs)[source]¶ closure method to do a single prediction. This is followed by backpropagation or not based state of on model.train
Parameters: - model (AbstractTfNetwork) – AbstractTfNetwork or its child-clases
- data_dict (dict) – dictionary containing the data
- metrics (dict) – dict holding the metrics to calculate
- fold (int) – Current Fold in Crossvalidation (default: 0)
- **kwargs – additional keyword arguments
Returns: - dict – Metric values (with same keys as input dict metrics)
- dict – Loss values (with same keys as those initially passed to model.init). Additionally, a total_loss key is added
- list – Arbitrary number of predictions as np.array
-
static
prepare_batch
(batch: dict, input_device, output_device)¶ Converts a numpy batch of data and labels to suitable datatype and pushes them to correct devices
Parameters: - batch (dict) – dictionary containing the batch (must have keys ‘data’ and ‘label’
- input_device – device for network inputs
- output_device – device for network outputs
Returns: dictionary containing all necessary data in right format and type and on the correct device
Return type: Raises: NotImplementedError
– If not overwritten by subclass
-