FranSys¶
FranSys prediction framework: diagnosis/prognosis models and training utilities.
Diag_RNN ¶
Diag_RNN(input_size: int, output_size: int, hidden_size: int = 100, rnn_layer: int = 1, linear_layer: int = 1, **kwargs)
Bases: Module
RNN-based diagnosis model that outputs flat state vectors.
Outputs [batch, seq_len, output_size] — a flat state estimate per timestep.
Use RNN.state_size from the prognosis model to set output_size so the
diagnosis output can be directly unflattened into the prognosis hidden state.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
input_size
|
int
|
number of input features |
required |
output_size
|
int
|
flat state dimension (typically |
required |
hidden_size
|
int
|
number of hidden units in the RNN |
100
|
rnn_layer
|
int
|
number of RNN layers |
1
|
linear_layer
|
int
|
number of linear layers in the output head |
1
|
Source code in tsfast/prediction/fransys.py
Diag_RNN_raw ¶
Bases: Module
Raw RNN diagnosis model that returns flattened hidden states directly.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
input_size
|
int
|
number of input features |
required |
hidden_size
|
int
|
number of hidden units in the RNN |
100
|
rnn_layer
|
int
|
number of RNN layers |
1
|
Source code in tsfast/prediction/fransys.py
Diag_TCN ¶
Bases: Module
TCN-based diagnosis model with optional MLP output head.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
input_size
|
int
|
number of input features |
required |
output_size
|
int
|
flat state dimension (typically |
required |
hl_width
|
int
|
width of TCN hidden layers |
required |
mlp_layers
|
int
|
number of additional MLP layers after the TCN |
0
|
Source code in tsfast/prediction/fransys.py
ARProg_Init ¶
ARProg_Init(n_u: int, n_y: int, init_sz: int, n_x: int = 0, hidden_size: int = 100, rnn_layer: int = 1, diag_model: Module | None = None, linear_layer: int = 1, final_layer: int = 0, init_sz_range: tuple[int, int] | None = None, **kwargs)
Bases: Module
Autoregressive prognosis model with diagnosis-based initialization.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
n_u
|
int
|
number of input channels |
required |
n_y
|
int
|
number of output channels |
required |
init_sz
|
int
|
number of initial time steps used for diagnosis |
required |
n_x
|
int
|
number of external state channels |
0
|
hidden_size
|
int
|
number of hidden units in the RNN |
100
|
rnn_layer
|
int
|
number of RNN layers |
1
|
diag_model
|
Module | None
|
custom diagnosis model outputting |
None
|
linear_layer
|
int
|
number of linear layers in the diagnosis output head |
1
|
final_layer
|
int
|
number of additional final layers (unused, reserved) |
0
|
init_sz_range
|
tuple[int, int] | None
|
if set, randomize init_sz within (min, max) during training |
None
|
Source code in tsfast/prediction/fransys.py
FranSys ¶
FranSys(n_u: int, n_y: int, init_sz: int, n_x: int = 0, hidden_size: int = 100, rnn_layer: int = 1, diag_model: Module | None = None, linear_layer: int = 1, init_diag_only: bool = False, final_layer: int = 0, init_sz_range: tuple[int, int] | None = None, **kwargs)
Bases: Module
Framework for Analysis of Systems: combined diagnosis/prognosis RNN model.
The diagnosis model can be any nn.Module that outputs
[batch, seq_len, state_dim] (flat state vectors per timestep), where
state_dim equals rnn_prognosis.state_size. The prognosis RNN converts
flat vectors to its internal hidden-state format via unflatten_state.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
n_u
|
int
|
number of input channels |
required |
n_y
|
int
|
number of output channels |
required |
init_sz
|
int
|
number of initial time steps used for diagnosis |
required |
n_x
|
int
|
number of external state channels |
0
|
hidden_size
|
int
|
number of hidden units in the RNN |
100
|
rnn_layer
|
int
|
number of RNN layers |
1
|
diag_model
|
Module | None
|
custom diagnosis model outputting |
None
|
linear_layer
|
int
|
number of linear layers in the diagnosis output head |
1
|
init_diag_only
|
bool
|
if True, limit diagnosis to init_sz time steps during training |
False
|
final_layer
|
int
|
number of additional layers in the shared output head |
0
|
init_sz_range
|
tuple[int, int] | None
|
if set, randomize init_sz within (min, max) during training |
None
|
Source code in tsfast/prediction/fransys.py
FranSysLearner ¶
FranSysLearner(dls, init_sz: int, attach_output: bool = False, loss_func=nn.L1Loss(), metrics: list | None = None, opt_func=torch.optim.Adam, lr: float = 0.003, transforms: list | None = None, augmentations: list | None = None, aux_losses: list | None = None, input_norm: type | None = StandardScaler, output_norm: type | None = None, **kwargs) -> Learner
Create a Learner configured for FranSys diagnosis/prognosis training.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
dls
|
DataLoaders with norm_stats for input/output normalization |
required | |
init_sz
|
int
|
number of initial time steps used for diagnosis |
required |
attach_output
|
bool
|
if True, use prediction_concat to concatenate output to input |
False
|
loss_func
|
loss function |
L1Loss()
|
|
metrics
|
list | None
|
metrics to track |
None
|
opt_func
|
optimizer constructor |
Adam
|
|
lr
|
float
|
learning rate |
0.003
|
transforms
|
list | None
|
additional transforms (train + valid) |
None
|
augmentations
|
list | None
|
additional augmentations (train only) |
None
|
aux_losses
|
list | None
|
additional auxiliary losses |
None
|
input_norm
|
type | None
|
scaler class for input normalization, None to disable |
StandardScaler
|
output_norm
|
type | None
|
scaler class for output denormalization, None to disable |
None
|
Source code in tsfast/prediction/fransys.py
300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 | |