Skip to content

Lazycon#

Thunder embraces the power of lazycon allowing you to build configs for your experiments.

Config structure#

Correct config should contain the following objects:

Name Required Description
trainer ✅ Lightning Trainer instance.
module ✅ LightningModule instance.
train_data ✅ Loader of training data.
val_data ❌ Loader of validation data.
test_data ❌ Loader of test data.
predict_data ❌ Loader of test data.
datamodule ❌ LightningDataModule instance, replaces train_data, val_data and test_data if specified.
CALLBACKS ❌ Arbitrary function (list of functions e.g. CALLBACKS=[seed_everything()]) to be executed before run.

After executing thunder run (see Executing a config), thunder will extract necessary fields. If some optional field (e.g. val_data) is not provided, features dependent on it will not be used (e.g. no validation if val_data is not provided).

Examples#

Examples of configs can be seen here

Executing a config#

Thunder has its own Command Line Interface, about which you can read here.

Logging#

All primitive values (e.g. int, float, tuples) are logged automatically via config parsing.