Machine Learning
Project description
RSProduction MachineLearning
This project provides some usefull machine learning functionality.
Table of Contents
- 1 metrics
- 2 model
- 3 multi_transforms
- 3.1 BGR2GRAY : MultiTransform
- 3.2 BGR2RGB : MultiTransform
- 3.3 Brightness : MultiTransform
- 3.4 CenterCrop : MultiTransform
- 3.5 Color : MultiTransform
- 3.6 Compose : builtins.object
- 3.7 GaussianNoise : MultiTransform
- 3.8 MultiTransform : builtins.object
- 3.9 Normalize : MultiTransform
- 3.10 RGB2BGR : BGR2RGB
- 3.11 RandomCrop : MultiTransform
- 3.12 RandomHorizontalFlip : MultiTransform
- 3.13 RandomVerticalFlip : MultiTransform
- 3.14 Resize : MultiTransform
- 3.15 Rotate : MultiTransform
- 3.16 Satturation : MultiTransform
- 3.17 Scale : MultiTransform
- 3.18 Stack : MultiTransform
- 3.19 ToCVImage : MultiTransform
- 3.20 ToNumpy : MultiTransform
- 3.21 ToPILImage : MultiTransform
- 3.22 ToTensor : MultiTransform
- 4 run
1 metrics
The module rsp.ml.metrics
provides some functionality to quantify the quality of predictions.
1.1 AUROC
Description
Calculates the Area under the Receiver Operation Chracteristic Curve.
Parameters
Name | Type | Description |
---|---|---|
Y | torch.Tensor | Prediction |
T | torch.Tensor | True values |
num_thresholds | int, default = 100 | Number of thresholds to compute. |
Returns
Receiver Operation Chracteristic Area under the Curve : float
1.2 F1_Score
Description
F1 Score. Expected input shape: (batch_size, num_classes)
Parameters
Name | Type | Description |
---|---|---|
Y | torch.Tensor | Prediction |
T | torch.Tensor | True values |
threshold | float | All values that are greater than or equal to the threshold are considered a positive class. |
Returns
F1 Score : float
Equations
$precision = \frac{TP}{TP + FP}$
$recall = \frac{TP}{TP + FN}$
$F_1 = \frac{2 \cdot precision \cdot recall}{precision + recall} = \frac{2 \cdot TP}{2 \cdot TP + FP + FN}$
Example
import rsp.ml.metrics as m
Y = torch.tensor([
[0.1, 0.1, 0.8],
[0.03, 0.95, 0.02],
[0.05, 0.9, 0.05],
[0.01, 0.87, 0.12],
[0.04, 0.03, 0.93],
[0.94, 0.02, 0.06]
])
T = torch.tensor([
[0, 0, 1],
[1, 0, 0],
[0, 1, 0],
[0, 1, 0],
[0, 0, 1],
[1, 0, 0]
])
f1score = m.F1_Score(Y, T)
print(f1score) --> 0.5
1.3 FN
Description
False negatives. Expected input shape: (batch_size, num_classes)
Parameters
Name | Type | Description |
---|---|---|
Y | torch.Tensor | Prediction |
T | torch.Tensor | True values |
threshold | float | All values that are greater than or equal to the threshold are considered a positive class. |
Returns
False negatives : int
Example
import rsp.ml.metrics as m
import torch
Y = torch.tensor([
[0.1, 0.1, 0.8],
[0.03, 0.95, 0.02],
[0.05, 0.9, 0.05],
[0.01, 0.87, 0.12],
[0.04, 0.03, 0.93],
[0.94, 0.02, 0.06]
])
T = torch.tensor([
[0, 0, 1],
[1, 0, 0],
[0, 1, 0],
[0, 1, 0],
[0, 0, 1],
[1, 0, 0]
])
fn = m.FN(Y, T)
print(fn) -> 1
1.4 FP
Description
False positives. Expected input shape: (batch_size, num_classes)
Parameters
Name | Type | Description |
---|---|---|
Y | torch.Tensor | Prediction |
T | torch.Tensor | True values |
threshold | float | All values that are greater than or equal to the threshold are considered a positive class. |
Returns
False positives : int
Example
import rsp.ml.metrics as m
import torch
Y = torch.tensor([
[0.1, 0.1, 0.8],
[0.03, 0.95, 0.02],
[0.05, 0.9, 0.05],
[0.01, 0.87, 0.12],
[0.04, 0.03, 0.93],
[0.94, 0.02, 0.06]
])
T = torch.tensor([
[0, 0, 1],
[1, 0, 0],
[0, 1, 0],
[0, 1, 0],
[0, 0, 1],
[1, 0, 0]
])
fp = m.FP(Y, T)
print(fp) -> 1
1.5 FPR
Description
False positive rate. Expected input shape: (batch_size, num_classes)
Parameters
Name | Type | Description |
---|---|---|
Y | torch.Tensor | Prediction |
T | torch.Tensor | True values |
threshold | float | All values that are greater than or equal to the threshold are considered a positive class. |
Returns
False positive rate : float
Example
import rsp.ml.metrics as m
import torch
Y = torch.tensor([
[0.1, 0.1, 0.8],
[0.03, 0.95, 0.02],
[0.05, 0.9, 0.05],
[0.01, 0.87, 0.12],
[0.04, 0.03, 0.93],
[0.94, 0.02, 0.06]
])
T = torch.tensor([
[0, 0, 1],
[1, 0, 0],
[0, 1, 0],
[0, 1, 0],
[0, 0, 1],
[1, 0, 0]
])
fpr = m.FPR(Y, T)
print(fpr) -> 0.08333333333333333
1.6 ROC
Description
Calculates the receiver operating characteristic: computes False Positive Rates and True positive Rates for num_thresholds
aligned between 0 and 1
Parameters
Name | Type | Description |
---|---|---|
Y | torch.Tensor | Prediction |
T | torch.Tensor | True values |
num_thresholds | int, default = 100 | Number of thresholds to compute. |
Returns
(False Positive Rates, True Positive Rates) for 100 different thresholds : (List[float], List[float])
Example
import rsp.ml.metrics as m
import torch
import torch.nn.functional as F
num_elements = 100000
num_classes = 7
T = []
for i in range(num_elements):
true_class = torch.randint(0, num_classes, (1,))
t = F.one_hot(true_class, num_classes=num_classes)
T.append(t)
T = torch.cat(T)
dist = torch.normal(T.float(), 1.5)
Y = F.softmax(dist, dim = 1)
FPRs, TPRs = m.ROC(Y, T)
1.7 TN
Description
True negatives. Expected input shape: (batch_size, num_classes)
Parameters
Name | Type | Description |
---|---|---|
Y | torch.Tensor | Prediction |
T | torch.Tensor | True values |
threshold | float | All values that are greater than or equal to the threshold are considered a positive class. |
Returns
True negatives : int
Example
import rsp.ml.metrics as m
import torch
Y = torch.tensor([
[0.1, 0.1, 0.8],
[0.03, 0.95, 0.02],
[0.05, 0.9, 0.05],
[0.01, 0.87, 0.12],
[0.04, 0.03, 0.93],
[0.94, 0.02, 0.06]
])
T = torch.tensor([
[0, 0, 1],
[1, 0, 0],
[0, 1, 0],
[0, 1, 0],
[0, 0, 1],
[1, 0, 0]
])
tn = m.TN(Y, T)
print(tn) -> 11
1.8 TP
Description
True positives. Expected input shape: (batch_size, num_classes)
Parameters
Name | Type | Description |
---|---|---|
Y | torch.Tensor | Prediction |
T | torch.Tensor | True values |
threshold | float | All values that are greater than or equal to the threshold are considered a positive class. |
Returns
True positives : int
Example
import rsp.ml.metrics as m
import torch
Y = torch.tensor([
[0.1, 0.1, 0.8],
[0.03, 0.95, 0.02],
[0.05, 0.9, 0.05],
[0.01, 0.87, 0.12],
[0.04, 0.03, 0.93],
[0.94, 0.02, 0.06]
])
T = torch.tensor([
[0, 0, 1],
[1, 0, 0],
[0, 1, 0],
[0, 1, 0],
[0, 0, 1],
[1, 0, 0]
])
tp = m.TP(Y, T)
print(tp) -> 5
1.9 TPR
Description
True positive rate. Expected input shape: (batch_size, num_classes)
Parameters
Name | Type | Description |
---|---|---|
Y | torch.Tensor | Prediction |
T | torch.Tensor | True values |
threshold | float | All values that are greater than or equal to the threshold are considered a positive class. |
Returns
True positive rate : float
Example
import rsp.ml.metrics as m
import torch
Y = torch.tensor([
[0.1, 0.1, 0.8],
[0.03, 0.95, 0.02],
[0.05, 0.9, 0.05],
[0.01, 0.87, 0.12],
[0.04, 0.03, 0.93],
[0.94, 0.02, 0.06]
])
T = torch.tensor([
[0, 0, 1],
[1, 0, 0],
[0, 1, 0],
[0, 1, 0],
[0, 0, 1],
[1, 0, 0]
])
tpr = m.TPR(Y, T)
print(tpr) -> 0.8333333333333334
1.10 confusion_matrix
Description
Calculates the confusion matrix. Expected input shape: (batch_size, num_classes)
Parameters
Name | Type | Description |
---|---|---|
Y | torch.Tensor | Prediction |
T | torch.Tensor | True values |
Returns
Confusion matrix : torch.Tensor
Example
import rsp.ml.metrics as m
import torch
Y = torch.tensor([
[0.1, 0.1, 0.8],
[0.03, 0.95, 0.02],
[0.05, 0.9, 0.05],
[0.01, 0.87, 0.12],
[0.04, 0.03, 0.93],
[0.94, 0.02, 0.06]
])
T = torch.tensor([
[0, 0, 1],
[1, 0, 0],
[0, 1, 0],
[0, 1, 0],
[0, 0, 1],
[1, 0, 0]
])
conf_mat = m.confusion_matrix(Y, T)
print(conf_mat) -> tensor([
[1, 1, 0],
[0, 2, 0],
[0, 0, 2]
])
1.11 plot_ROC
Description
Plot the receiver operating characteristic.
Parameters
Name | Type | Description |
---|---|---|
Y | torch.Tensor | Prediction |
T | torch.Tensor | True values |
num_thresholds | int, default = 100 | Number of thresholds to compute. |
title | str, optional, default = 'Confusion Matrix' | Title of the plot |
class_curves | bool, default = False | Plot ROC curve for each class |
labels | str, optional, default = None | Class labels -> automatic labeling C000, ..., CXXX if labels is None |
plt_show | bool, optional, default = False | Set to True to show the plot |
save_file_name | str, optional, default = None | If not None, the plot is saved under the specified save_file_name. |
Returns
Image of the confusion matrix : np.array
1.12 plot_confusion_matrix
Description
Plot the confusion matrix
Parameters
Name | Type | Description |
---|---|---|
confusion_matrix | torch.Tensor | Confusion matrix |
labels | str, optional, default = None | Class labels -> automatic labeling C000, ..., CXXX if labels is None |
cmap | str, optional, default = 'Blues' | Seaborn cmap, see https://r02b.github.io/seaborn_palettes/ |
xlabel | str, optional, default = 'Predicted label' | X-Axis label |
ylabel | str, optional, default = 'True label' | Y-Axis label |
title | str, optional, default = 'Confusion Matrix' | Title of the plot |
plt_show | bool, optional, default = False | Set to True to show the plot |
save_file_name | str, optional, default = None | If not None, the plot is saved under the specified save_file_name. |
Returns
Image of the confusion matrix : np.array
1.13 precision
Description
Precision. Expected input shape: (batch_size, num_classes)
Parameters
Name | Type | Description |
---|---|---|
Y | torch.Tensor | Prediction |
T | torch.Tensor | True values |
threshold | float | All values that are greater than or equal to the threshold are considered a positive class. |
Returns
Precision : float
Equations
$precision = \frac{TP}{TP + FP}$
Example
import rsp.ml.metrics as m
import torch
Y = torch.tensor([
[0.1, 0.1, 0.8],
[0.03, 0.95, 0.02],
[0.05, 0.9, 0.05],
[0.01, 0.87, 0.12],
[0.04, 0.03, 0.93],
[0.94, 0.02, 0.06]
])
T = torch.tensor([
[0, 0, 1],
[1, 0, 0],
[0, 1, 0],
[0, 1, 0],
[0, 0, 1],
[1, 0, 0]
])
precision = m.precision(Y, T)
print(precision) -> 0.8333333333333334
1.14 recall
Description
Recall. Expected input shape: (batch_size, num_classes)
Parameters
Name | Type | Description |
---|---|---|
Y | torch.Tensor | Prediction |
T | torch.Tensor | True values |
threshold | float | All values that are greater than or equal to the threshold are considered a positive class. |
Returns
Recall : float
Equations
$recall = \frac{TP}{TP + FN}$
Example
import rsp.ml.metrics as m
import torch
Y = torch.tensor([
[0.1, 0.1, 0.8],
[0.03, 0.95, 0.02],
[0.05, 0.9, 0.05],
[0.01, 0.87, 0.12],
[0.04, 0.03, 0.93],
[0.94, 0.02, 0.06]
])
T = torch.tensor([
[0, 0, 1],
[1, 0, 0],
[0, 1, 0],
[0, 1, 0],
[0, 0, 1],
[1, 0, 0]
])
recall = m.recall(Y, T)
print(recall) -> 0.8333333333333334
1.15 top_10_accuracy
Description
Top 10 accuracy. Expected input shape: (batch_size, num_classes)
Parameters
Name | Type | Description |
---|---|---|
Y | torch.Tensor | Prediction |
T | torch.Tensor | True values |
Returns
Top 10 accuracy -> top k accuracy | k = 10 : float
Example
import rsp.ml.metrics as m
Y = torch.tensor([
[0.1, 0.1, 0.8],
[0.03, 0.95, 0.02],
[0.05, 0.9, 0.05],
[0.01, 0.87, 0.12],
[0.04, 0.03, 0.93],
[0.94, 0.02, 0.06]
])
T = torch.tensor([
[0, 0, 1],
[1, 0, 0],
[0, 1, 0],
[0, 1, 0],
[0, 0, 1],
[1, 0, 0]
])
top_10_accuracy = m.top_10_accuracy(Y, T, k = 3)
print(top_10_accuracy) --> 1.0
1.16 top_1_accuracy
Description
Top 1 accuracy. Expected input shape: (batch_size, num_classes)
Parameters
Name | Type | Description |
---|---|---|
Y | torch.Tensor | Prediction |
T | torch.Tensor | True values |
Returns
Top 1 accuracy -> top k accuracy | k = 1 : float
Example
import rsp.ml.metrics as m
Y = torch.tensor([
[0.1, 0.1, 0.8],
[0.03, 0.95, 0.02],
[0.05, 0.9, 0.05],
[0.01, 0.87, 0.12],
[0.04, 0.03, 0.93],
[0.94, 0.02, 0.06]
])
T = torch.tensor([
[0, 0, 1],
[1, 0, 0],
[0, 1, 0],
[0, 1, 0],
[0, 0, 1],
[1, 0, 0]
])
top_1_accuracy = m.top_1_accuracy(Y, T, k = 3)
print(top_1_accuracy) --> 0.8333333333333334
1.17 top_2_accuracy
Description
Top 2 accuracy. Expected input shape: (batch_size, num_classes)
Parameters
Name | Type | Description |
---|---|---|
Y | torch.Tensor | Prediction |
T | torch.Tensor | True values |
Returns
Top 2 accuracy -> top k accuracy | k = 2 : float
Example
import rsp.ml.metrics as m
Y = torch.tensor([
[0.1, 0.1, 0.8],
[0.03, 0.95, 0.02],
[0.05, 0.9, 0.05],
[0.01, 0.87, 0.12],
[0.04, 0.03, 0.93],
[0.94, 0.02, 0.06]
])
T = torch.tensor([
[0, 0, 1],
[1, 0, 0],
[0, 1, 0],
[0, 1, 0],
[0, 0, 1],
[1, 0, 0]
])
top_2_accuracy = m.top_2_accuracy(Y, T, k = 3)
print(top_2_accuracy) --> 1.0
1.18 top_3_accuracy
Description
Top 3 accuracy. Expected input shape: (batch_size, num_classes)
Parameters
Name | Type | Description |
---|---|---|
Y | torch.Tensor | Prediction |
T | torch.Tensor | True values |
Returns
Top 3 accuracy -> top k accuracy | k = 3 : float
Example
import rsp.ml.metrics as m
Y = torch.tensor([
[0.1, 0.1, 0.8],
[0.03, 0.95, 0.02],
[0.05, 0.9, 0.05],
[0.01, 0.87, 0.12],
[0.04, 0.03, 0.93],
[0.94, 0.02, 0.06]
])
T = torch.tensor([
[0, 0, 1],
[1, 0, 0],
[0, 1, 0],
[0, 1, 0],
[0, 0, 1],
[1, 0, 0]
])
top_3_accuracy = m.top_3_accuracy(Y, T, k = 3)
print(top_3_accuracy) --> 1.0
1.19 top_5_accuracy
Description
Top 5 accuracy. Expected input shape: (batch_size, num_classes)
Parameters
Name | Type | Description |
---|---|---|
Y | torch.Tensor | Prediction |
T | torch.Tensor | True values |
Returns
Top 5 accuracy -> top k accuracy | k = 5 : float
Example
import rsp.ml.metrics as m
Y = torch.tensor([
[0.1, 0.1, 0.8],
[0.03, 0.95, 0.02],
[0.05, 0.9, 0.05],
[0.01, 0.87, 0.12],
[0.04, 0.03, 0.93],
[0.94, 0.02, 0.06]
])
T = torch.tensor([
[0, 0, 1],
[1, 0, 0],
[0, 1, 0],
[0, 1, 0],
[0, 0, 1],
[1, 0, 0]
])
top_5_accuracy = m.top_5_accuracy(Y, T, k = 3)
print(top_5_accuracy) --> 1.0
1.20 top_k_accuracy
Description
Top k accuracy. Expected input shape: (batch_size, num_classes)
Parameters
Name | Type | Description |
---|---|---|
Y | torch.Tensor | Prediction |
T | torch.Tensor | True values |
Returns
Top k accuracy : float
Example
import rsp.ml.metrics as m
Y = torch.tensor([
[0.1, 0.1, 0.8],
[0.03, 0.95, 0.02],
[0.05, 0.9, 0.05],
[0.01, 0.87, 0.12],
[0.04, 0.03, 0.93],
[0.94, 0.02, 0.06]
])
T = torch.tensor([
[0, 0, 1],
[1, 0, 0],
[0, 1, 0],
[0, 1, 0],
[0, 0, 1],
[1, 0, 0]
])
top_k_accuracy = m.top_k_accuracy(Y, T, k = 3)
print(top_k_accuracy) --> 1.0
2 model
The module rsp.ml.model
provides some usefull functionality to store and load pytorch models.
2.2 Constants
Name | Value | Description |
---|---|---|
TUC_ActionPrediction_model004 | TUC/ActionPrediction/Model4 | TUC Action prediction model 4 CNN with Multihead-Self-Attention Input - batch size - sequence length = 30 - channels = 3 - width = 200 - height = 200 Output - batch size - number of classes = 10 |
TUC_ActionPrediction_model005 | TUC/ActionPrediction/Model5 | TUC Action prediction model 5 CNN with Multihead-Self-Attention Input - batch size - sequence length = 30 - channels = 3 - width = 300 - height = 300 Output - batch size - number of classes = 10 |
URL | https://drive.google.com/drive/folders/1ulNnPqg-5wvenRl2CuJMxMMcaiYfHjQ9?usp=share_link | Google Drive URL |
2.1 load_model
Description
Loads a model from an pretrained PyTorch external source into memory.
See Constants for available models
Parameters
Name | Type | Description |
---|---|---|
model_id | str | ID of the model |
force_reload | bool | Overwrite local file -> forces downlad. |
Returns
Pretrained PyTorch model : torch.nn.Module
Example
import rsp.ml.model as model
model004 = model.load_model(model.TUC_ActionPrediction_model004)
3 multi_transforms
The module rsp.ml.multi_transforms
is based on torchvision.transforms
, which is made for single images. rsp.ml.multi_transforms
extends this functionality by providing transformations for sequences of images, which could be usefull for video augmentation.
3.1 BGR2GRAY : MultiTransform
Description
Converts a sequence of BGR images to grayscale images.
3.1.1 __call__
Description
Call self as a function.
Parameters
Name | Type | Description |
---|---|---|
input | torch.Tensor List[PIL.Image] List[numpy.array] |
Sequence of images |
3.1.2 __init__
Description
Initializes a new instance.
3.2 BGR2RGB : MultiTransform
Description
Converts sequence of BGR images to RGB images.
3.2.1 __call__
Description
Call self as a function.
Parameters
Name | Type | Description |
---|---|---|
input | torch.Tensor List[PIL.Image] List[numpy.array] |
Sequence of images |
3.2.2 __init__
Description
Initializes a new instance.
3.3 Brightness : MultiTransform
Description
MultiTransform is an extension to keep the same transformation over a sequence of images instead of initializing a new transformation for every single image. It is inspired by torchvision.transforms
and could be used for video augmentation. Use rsp.ml.multi_transforms.Compose
to combine multiple image sequence transformations.
Note
rsp.ml.multi_transforms.MultiTransform
is a base class and should be inherited.
3.3.1 __call__
Description
Call self as a function.
Parameters
Name | Type | Description |
---|---|---|
input | torch.Tensor List[PIL.Image] List[numpy.array] |
Sequence of images |
3.3.2 __init__
Description
Initializes a new instance.
3.4 CenterCrop : MultiTransform
Description
Crops Images at the center after upscaling them. Dimensions kept the same.
3.4.1 __call__
Description
Call self as a function.
Parameters
Name | Type | Description |
---|---|---|
input | torch.Tensor List[PIL.Image] List[numpy.array] |
Sequence of images |
3.4.2 __init__
Description
Initializes a new instance.
Parameters
Name | Type | Description |
---|---|---|
max_scale | float | Images are scaled randomly between 1. and max_scale before cropping to original size. |
3.5 Color : MultiTransform
Description
MultiTransform is an extension to keep the same transformation over a sequence of images instead of initializing a new transformation for every single image. It is inspired by torchvision.transforms
and could be used for video augmentation. Use rsp.ml.multi_transforms.Compose
to combine multiple image sequence transformations.
Note
rsp.ml.multi_transforms.MultiTransform
is a base class and should be inherited.
3.5.1 __call__
Description
Call self as a function.
Parameters
Name | Type | Description |
---|---|---|
input | torch.Tensor List[PIL.Image] List[numpy.array] |
Sequence of images |
3.5.2 __init__
Description
Initializes a new instance.
3.6 Compose : builtins.object
Description
Composes several MultiTransforms together.
Example
import rsp.ml.multi_transforms as t
transforms = t.Compose([
t.BGR2GRAY(),
t.Scale(0.5)
])
3.6.1 __call__
Description
Call self as a function.
3.6.2 __init__
Description
Initializes a new instance.
Parameters
Name | Type | Description |
---|---|---|
children | List[MultiTransform] | List of MultiTransforms to compose. |
3.7 GaussianNoise : MultiTransform
Description
MultiTransform is an extension to keep the same transformation over a sequence of images instead of initializing a new transformation for every single image. It is inspired by torchvision.transforms
and could be used for video augmentation. Use rsp.ml.multi_transforms.Compose
to combine multiple image sequence transformations.
Note
rsp.ml.multi_transforms.MultiTransform
is a base class and should be inherited.
3.7.1 __call__
Description
Call self as a function.
Parameters
Name | Type | Description |
---|---|---|
input | torch.Tensor List[PIL.Image] List[numpy.array] |
Sequence of images |
3.7.2 __init__
Description
Initializes a new instance.
3.8 MultiTransform : builtins.object
Description
MultiTransform is an extension to keep the same transformation over a sequence of images instead of initializing a new transformation for every single image. It is inspired by torchvision.transforms
and could be used for video augmentation. Use rsp.ml.multi_transforms.Compose
to combine multiple image sequence transformations.
Note
rsp.ml.multi_transforms.MultiTransform
is a base class and should be inherited.
3.8.1 __call__
Description
Call self as a function.
Parameters
Name | Type | Description |
---|---|---|
input | torch.Tensor List[PIL.Image] List[numpy.array] |
Sequence of images |
3.8.2 __init__
Description
Initializes a new instance.
3.9 Normalize : MultiTransform
Description
Normalize images with mean and standard deviation. Given mean: (mean[1],...,mean[n]) and std: (std[1],..,std[n]) for n channels, this transform will normalize each channel of the input torch.*Tensor i.e., output[channel] = (input[channel] - mean[channel]) / std[channel]
Based on torchvision.transforms.Normalize
3.9.1 __call__
Description
Call self as a function.
Parameters
Name | Type | Description |
---|---|---|
input | torch.Tensor List[PIL.Image] List[numpy.array] |
Sequence of images |
3.9.2 __init__
Description
Initializes a new instance.
Parameters
Name | Type | Description |
---|---|---|
mean | List[float] | Sequence of means for each channel. |
std | List[float] | Sequence of standard deviations for each channel. |
inplace | bool | Set to True make this operation in-place. |
3.10 RGB2BGR : BGR2RGB
Description
Converts sequence of RGB images to BGR images.
3.10.1 __call__
Description
Call self as a function.
Parameters
Name | Type | Description |
---|---|---|
input | torch.Tensor List[PIL.Image] List[numpy.array] |
Sequence of images |
3.10.2 __init__
Description
Initializes a new instance.
3.11 RandomCrop : MultiTransform
Description
Crops Images at a random location after upscaling them. Dimensions kept the same.
3.11.1 __call__
Description
Call self as a function.
Parameters
Name | Type | Description |
---|---|---|
input | torch.Tensor List[PIL.Image] List[numpy.array] |
Sequence of images |
3.11.2 __init__
Description
Initializes a new instance.
Parameters
Name | Type | Description |
---|---|---|
max_scale | float | Images are scaled randomly between 1. and max_scale before cropping to original size. |
3.12 RandomHorizontalFlip : MultiTransform
Description
MultiTransform is an extension to keep the same transformation over a sequence of images instead of initializing a new transformation for every single image. It is inspired by torchvision.transforms
and could be used for video augmentation. Use rsp.ml.multi_transforms.Compose
to combine multiple image sequence transformations.
Note
rsp.ml.multi_transforms.MultiTransform
is a base class and should be inherited.
3.12.1 __call__
Description
Call self as a function.
Parameters
Name | Type | Description |
---|---|---|
input | torch.Tensor List[PIL.Image] List[numpy.array] |
Sequence of images |
3.12.2 __init__
Description
Initializes a new instance.
3.13 RandomVerticalFlip : MultiTransform
Description
MultiTransform is an extension to keep the same transformation over a sequence of images instead of initializing a new transformation for every single image. It is inspired by torchvision.transforms
and could be used for video augmentation. Use rsp.ml.multi_transforms.Compose
to combine multiple image sequence transformations.
Note
rsp.ml.multi_transforms.MultiTransform
is a base class and should be inherited.
3.13.1 __call__
Description
Call self as a function.
Parameters
Name | Type | Description |
---|---|---|
input | torch.Tensor List[PIL.Image] List[numpy.array] |
Sequence of images |
3.13.2 __init__
Description
Initializes a new instance.
3.14 Resize : MultiTransform
Description
MultiTransform is an extension to keep the same transformation over a sequence of images instead of initializing a new transformation for every single image. It is inspired by torchvision.transforms
and could be used for video augmentation. Use rsp.ml.multi_transforms.Compose
to combine multiple image sequence transformations.
Note
rsp.ml.multi_transforms.MultiTransform
is a base class and should be inherited.
3.14.1 __call__
Description
Call self as a function.
Parameters
Name | Type | Description |
---|---|---|
input | torch.Tensor List[PIL.Image] List[numpy.array] |
Sequence of images |
3.14.2 __init__
Description
Initializes a new instance.
3.15 Rotate : MultiTransform
Description
Randomly rotates images.
Equations
$angle = -max_angle + 2 \cdot random() \cdot max_angle$
3.15.1 __call__
Description
Call self as a function.
Parameters
Name | Type | Description |
---|---|---|
input | torch.Tensor List[PIL.Image] List[numpy.array] |
Sequence of images |
3.15.2 __init__
Description
Iitializes a new instance.
Parameters
Name | Type | Description |
---|---|---|
max_angle | float | Maximal rotation in degrees |
auto_scale | bool, default = True | Image will be resized when auto scale is activated to avoid black margins. |
3.16 Satturation : MultiTransform
Description
MultiTransform is an extension to keep the same transformation over a sequence of images instead of initializing a new transformation for every single image. It is inspired by torchvision.transforms
and could be used for video augmentation. Use rsp.ml.multi_transforms.Compose
to combine multiple image sequence transformations.
Note
rsp.ml.multi_transforms.MultiTransform
is a base class and should be inherited.
3.16.1 __call__
Description
Call self as a function.
Parameters
Name | Type | Description |
---|---|---|
input | torch.Tensor List[PIL.Image] List[numpy.array] |
Sequence of images |
3.16.2 __init__
Description
Initializes a new instance.
3.17 Scale : MultiTransform
Description
MultiTransform is an extension to keep the same transformation over a sequence of images instead of initializing a new transformation for every single image. It is inspired by torchvision.transforms
and could be used for video augmentation. Use rsp.ml.multi_transforms.Compose
to combine multiple image sequence transformations.
Note
rsp.ml.multi_transforms.MultiTransform
is a base class and should be inherited.
3.17.1 __call__
Description
Call self as a function.
Parameters
Name | Type | Description |
---|---|---|
input | torch.Tensor List[PIL.Image] List[numpy.array] |
Sequence of images |
3.17.2 __init__
Description
Initializes a new instance.
3.18 Stack : MultiTransform
Description
MultiTransform is an extension to keep the same transformation over a sequence of images instead of initializing a new transformation for every single image. It is inspired by torchvision.transforms
and could be used for video augmentation. Use rsp.ml.multi_transforms.Compose
to combine multiple image sequence transformations.
Note
rsp.ml.multi_transforms.MultiTransform
is a base class and should be inherited.
3.18.1 __call__
Description
Call self as a function.
Parameters
Name | Type | Description |
---|---|---|
input | torch.Tensor List[PIL.Image] List[numpy.array] |
Sequence of images |
3.18.2 __init__
Description
Initializes a new instance.
3.19 ToCVImage : MultiTransform
Description
Converts a torch.Tensor
to Open CV image by changing dimensions (d0, d1, d2) -> (d1, d2, d0) and converting torch.Tensor
to numpy
.
3.19.1 __call__
Description
Call self as a function.
Parameters
Name | Type | Description |
---|---|---|
input | torch.Tensor List[PIL.Image] List[numpy.array] |
Sequence of images |
3.19.2 __init__
Description
Initializes a new instance.
3.20 ToNumpy : MultiTransform
Description
Converts a torch.Tensor
to numpy
3.20.1 __call__
Description
Call self as a function.
Parameters
Name | Type | Description |
---|---|---|
input | torch.Tensor List[PIL.Image] List[numpy.array] |
Sequence of images |
3.20.2 __init__
Description
Initializes a new instance.
3.21 ToPILImage : MultiTransform
Description
Converts sequence of images to sequence of PIL.Image
.
3.21.1 __call__
Description
Call self as a function.
Parameters
Name | Type | Description |
---|---|---|
input | torch.Tensor List[PIL.Image] List[numpy.array] |
Sequence of images |
3.21.2 __init__
Description
Initializes a new instance.
3.22 ToTensor : MultiTransform
Description
Converts a sequence of images to torch.Tensor.
3.22.1 __call__
Description
Call self as a function.
Parameters
Name | Type | Description |
---|---|---|
input | torch.Tensor List[PIL.Image] List[numpy.array] |
Sequence of images |
3.22.2 __init__
Description
Initializes a new instance.
4 run
The module rsp.ml.run
provides some tools for storing, loading and visualizing data during training of models using PyTorch.
4.1 Run : builtins.object
4.1.1 __init__
Description
Initialize self. See help(type(self)) for accurate signature.
4.1.2 append
4.1.3 get_avg
4.1.4 get_val
4.1.5 len
4.1.6 load_best_state_dict
4.1.7 load_state_dict
4.1.8 pickle_dump
4.1.9 pickle_load
4.1.10 plot
4.1.11 recalculate_moving_average
4.1.12 save
4.1.13 save_best_state_dict
4.1.14 save_state_dict
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file rsp_ml-0.0.66.tar.gz
.
File metadata
- Download URL: rsp_ml-0.0.66.tar.gz
- Upload date:
- Size: 29.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8ad3248e1353c0fc8fb67263147993abdf5c7475840770e70e967273a635b019 |
|
MD5 | 18397c843ccd3794c0ed8e609a4cc8f2 |
|
BLAKE2b-256 | ad8ce4013233c7e28924927134dcc804b106ad767974b2c63724cc6fa944d165 |
File details
Details for the file rsp_ml-0.0.66-py3-none-any.whl
.
File metadata
- Download URL: rsp_ml-0.0.66-py3-none-any.whl
- Upload date:
- Size: 20.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f9540aee9992da8cce6bc00a5d9924db16045069049b22b24e70a603f0e618ae |
|
MD5 | 395e8c283b6b73771c68f341c8347dc9 |
|
BLAKE2b-256 | 3bfe737d8aca155f39e792a67a3fd92e89496ce53410cbf1e7bc5ba7ad2fc40a |