Skip to content

PyTorch

flowcean.torch provides datasets, model wrappers, neural network architectures, and a Lightning learner. Install the torch extra as described in installation.

torch

Classes

TorchDataset

TorchDataset(inputs: DataFrame, outputs: DataFrame | None = None)

Bases: Dataset[tuple[Tensor, Tensor]]

Dataset for PyTorch.

Initialize the TorchDataset.

Parameters:

Name Type Description Default
inputs DataFrame

The input data.

required
outputs DataFrame | None

The output data. Defaults to None.

None
Attributes
inputs instance-attribute
inputs = inputs
outputs instance-attribute
outputs = outputs

LightningLearner

LightningLearner(module: LightningModule, num_workers: int | None = None, batch_size: int = 32, max_epochs: int = 100, accelerator: str = 'auto', callbacks: list[LearnerCallback] | LearnerCallback | None = None)

Bases: SupervisedLearner

A learner that uses PyTorch Lightning.

Parameters:

Name Type Description Default
module LightningModule

The PyTorch Lightning module.

required
num_workers int | None

The number of workers to use for the DataLoader.

None
batch_size int

The batch size to use for training.

32
max_epochs int

The maximum number of epochs to train for.

100
accelerator str

The accelerator to use.

'auto'
callbacks list[LearnerCallback] | LearnerCallback | None

Optional callbacks for progress feedback. Use None for silent learning.

None

Initialize the learner.

Parameters:

Name Type Description Default
module LightningModule

The PyTorch Lightning module.

required
num_workers int | None

The number of workers to use for the DataLoader.

None
batch_size int

The batch size to use for training.

32
max_epochs int

The maximum number of epochs to train for.

100
accelerator str

The accelerator to use.

'auto'
callbacks list[LearnerCallback] | LearnerCallback | None

Optional callbacks for progress feedback. Use None for silent learning.

None
Attributes
module instance-attribute
module = module
num_workers instance-attribute
num_workers = num_workers or os.cpu_count() or 0
max_epochs instance-attribute
max_epochs = max_epochs
batch_size instance-attribute
batch_size = batch_size
optimizer instance-attribute
optimizer = None
accelerator instance-attribute
accelerator = accelerator
callback_manager instance-attribute
callback_manager = create_callback_manager(callbacks)
Methods:
learn
learn(inputs: LazyFrame, outputs: LazyFrame) -> PyTorchModel

LinearRegression

LinearRegression(*, output_size: int, learning_rate: float = 0.001, loss: Module | None = None, a: Tensor | None = None, b: Tensor | None = None)

Bases: SupervisedIncrementalLearner

Linear regression learner.

Initialize the learner.

Parameters:

Name Type Description Default
output_size int

The size of the output.

required
learning_rate float

The learning rate.

0.001
loss Module | None

The loss function.

None
a Tensor | None

Initial weights. If None (the default), random weights are used.

None
b Tensor | None

Initial bias. If None (the default), random bias is used.

None
Attributes
model instance-attribute
model = nn.LazyLinear(output_size)
loss instance-attribute
loss = loss or nn.MSELoss()
optimizer instance-attribute
optimizer = SGD(self.model.parameters(), lr=learning_rate)
Methods:
learn_incremental
learn_incremental(inputs: LazyFrame, outputs: LazyFrame) -> PyTorchModel

PyTorchModel

PyTorchModel(module: Module, output_names: list[str], batch_size: int = 32, num_workers: int = 1)

Bases: Model

PyTorch model wrapper.

Initialize the model.

Parameters:

Name Type Description Default
module Module

The PyTorch module.

required
output_names list[str]

The names of the output columns.

required
batch_size int

The batch size to use for predictions.

32
num_workers int

Retained for backward compatibility.

1
Attributes
module instance-attribute
module = module
output_names instance-attribute
output_names = output_names
batch_size instance-attribute
batch_size = batch_size
num_workers instance-attribute
num_workers = num_workers

MultilayerPerceptron

MultilayerPerceptron(learning_rate: float, output_size: int, hidden_dimensions: list[int] | None = None, *, activation_function: type[Module] | None = None)

Bases: LightningModule

A multilayer perceptron.

Initialize the model.

Parameters:

Name Type Description Default
learning_rate float

The learning rate.

required
output_size int

The size of the output.

required
hidden_dimensions list[int] | None

The dimensions of the hidden layers.

None
activation_function type[Module] | None

The activation function to use. Defaults to ReLU if not provided.

None
Attributes
learning_rate instance-attribute
learning_rate = learning_rate
model instance-attribute
model = torch.nn.Sequential(*layers)
Methods:
forward
forward(*args: Any, **kwargs: Any) -> Tensor
training_step
training_step(batch: Any) -> Tensor
configure_optimizers
configure_optimizers() -> Any

Functions: