Security News
Research
Data Theft Repackaged: A Case Study in Malicious Wrapper Packages on npm
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
This project provides some usefull machine learning functionality.
The module rsp.ml.metrics
provides some functionality to quantify the quality of predictions.
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
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
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
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
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
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)
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
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
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
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]
])
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
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
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
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
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
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
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
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
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
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
The module rsp.ml.model
provides some usefull functionality to store and load pytorch models.
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 |
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)
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.
Description
Converts a sequence of BGR images to grayscale images.
Description
Call self as a function.
Parameters
Name | Type | Description |
---|---|---|
input | torch.Tensor List[PIL.Image] List[numpy.array] | Sequence of images |
Description
Initializes a new instance.
Description
Converts sequence of BGR images to RGB images.
Description
Call self as a function.
Parameters
Name | Type | Description |
---|---|---|
input | torch.Tensor List[PIL.Image] List[numpy.array] | Sequence of images |
Description
Initializes a new instance.
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.
Description
Call self as a function.
Parameters
Name | Type | Description |
---|---|---|
input | torch.Tensor List[PIL.Image] List[numpy.array] | Sequence of images |
Description
Initializes a new instance.
Description
Crops Images at the center after upscaling them. Dimensions kept the same.
Description
Call self as a function.
Parameters
Name | Type | Description |
---|---|---|
input | torch.Tensor List[PIL.Image] List[numpy.array] | Sequence of images |
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. |
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.
Description
Call self as a function.
Parameters
Name | Type | Description |
---|---|---|
input | torch.Tensor List[PIL.Image] List[numpy.array] | Sequence of images |
Description
Initializes a new instance.
Description
Composes several MultiTransforms together.
Example
import rsp.ml.multi_transforms as t
transforms = t.Compose([
t.BGR2GRAY(),
t.Scale(0.5)
])
Description
Call self as a function.
Description
Initializes a new instance.
Parameters
Name | Type | Description |
---|---|---|
children | List[MultiTransform] | List of MultiTransforms to compose. |
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.
Description
Call self as a function.
Parameters
Name | Type | Description |
---|---|---|
input | torch.Tensor List[PIL.Image] List[numpy.array] | Sequence of images |
Description
Initializes a new instance.
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.
Description
Call self as a function.
Parameters
Name | Type | Description |
---|---|---|
input | torch.Tensor List[PIL.Image] List[numpy.array] | Sequence of images |
Description
Initializes a new instance.
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
Description
Call self as a function.
Parameters
Name | Type | Description |
---|---|---|
input | torch.Tensor List[PIL.Image] List[numpy.array] | Sequence of images |
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. |
Description
Converts sequence of RGB images to BGR images.
Description
Call self as a function.
Parameters
Name | Type | Description |
---|---|---|
input | torch.Tensor List[PIL.Image] List[numpy.array] | Sequence of images |
Description
Initializes a new instance.
Description
Crops Images at a random location after upscaling them. Dimensions kept the same.
Description
Call self as a function.
Parameters
Name | Type | Description |
---|---|---|
input | torch.Tensor List[PIL.Image] List[numpy.array] | Sequence of images |
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. |
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.
Description
Call self as a function.
Parameters
Name | Type | Description |
---|---|---|
input | torch.Tensor List[PIL.Image] List[numpy.array] | Sequence of images |
Description
Initializes a new instance.
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.
Description
Call self as a function.
Parameters
Name | Type | Description |
---|---|---|
input | torch.Tensor List[PIL.Image] List[numpy.array] | Sequence of images |
Description
Initializes a new instance.
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.
Description
Call self as a function.
Parameters
Name | Type | Description |
---|---|---|
input | torch.Tensor List[PIL.Image] List[numpy.array] | Sequence of images |
Description
Initializes a new instance.
Description
Randomly rotates images.
Equations
$angle = -max_angle + 2 \cdot random() \cdot max_angle$
Description
Call self as a function.
Parameters
Name | Type | Description |
---|---|---|
input | torch.Tensor List[PIL.Image] List[numpy.array] | Sequence of images |
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. |
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.
Description
Call self as a function.
Parameters
Name | Type | Description |
---|---|---|
input | torch.Tensor List[PIL.Image] List[numpy.array] | Sequence of images |
Description
Initializes a new instance.
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.
Description
Call self as a function.
Parameters
Name | Type | Description |
---|---|---|
input | torch.Tensor List[PIL.Image] List[numpy.array] | Sequence of images |
Description
Initializes a new instance.
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.
Description
Call self as a function.
Parameters
Name | Type | Description |
---|---|---|
input | torch.Tensor List[PIL.Image] List[numpy.array] | Sequence of images |
Description
Initializes a new instance.
Description
Converts a torch.Tensor
to Open CV image by changing dimensions (d0, d1, d2) -> (d1, d2, d0) and converting torch.Tensor
to numpy
.
Description
Call self as a function.
Parameters
Name | Type | Description |
---|---|---|
input | torch.Tensor List[PIL.Image] List[numpy.array] | Sequence of images |
Description
Initializes a new instance.
Description
Converts a torch.Tensor
to numpy
Description
Call self as a function.
Parameters
Name | Type | Description |
---|---|---|
input | torch.Tensor List[PIL.Image] List[numpy.array] | Sequence of images |
Description
Initializes a new instance.
Description
Converts sequence of images to sequence of PIL.Image
.
Description
Call self as a function.
Parameters
Name | Type | Description |
---|---|---|
input | torch.Tensor List[PIL.Image] List[numpy.array] | Sequence of images |
Description
Initializes a new instance.
Description
Converts a sequence of images to torch.Tensor.
Description
Call self as a function.
Parameters
Name | Type | Description |
---|---|---|
input | torch.Tensor List[PIL.Image] List[numpy.array] | Sequence of images |
Description
Initializes a new instance.
The module rsp.ml.run
provides some tools for storing, loading and visualizing data during training of models using PyTorch.
Description
Initialize self. See help(type(self)) for accurate signature.
FAQs
Machine Learning
We found that rsp-ml demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Research
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Research
Security News
Attackers used a malicious npm package typosquatting a popular ESLint plugin to steal sensitive data, execute commands, and exploit developer systems.
Security News
The Ultralytics' PyPI Package was compromised four times in one weekend through GitHub Actions cache poisoning and failure to rotate previously compromised API tokens.