Centralized Learning – Neural Networks

Examples of centralized machine learning with neural networks on various datasets.


Banknote Dataset

banknote_nn_example.py
 1from kosmos.ml.cl_manager import CLManager
 2from kosmos.ml.config.factories.loss import CrossEntropyLossConfig
 3from kosmos.ml.config.factories.lr_scheduler import CosineLearningRateSchedulerConfig
 4from kosmos.ml.config.factories.model import NeuralNetworkConfig
 5from kosmos.ml.config.factories.optimizer import AdamOptimizerConfig
 6from kosmos.ml.config.sl_train import SLTrainConfig
 7from kosmos.ml.datasets.banknote_dataset import BanknoteDataset
 8from kosmos.utils.rng import RNG
 9
10
11def banknote_nn_example() -> None:
12    """Run example of training and testing on the Banknote dataset using a neural network."""
13    RNG.initialize(seed=1)
14
15    banknote_dataset = BanknoteDataset()
16
17    config = SLTrainConfig(
18        dataset=banknote_dataset,
19        train_split=0.7,
20        batch_size=32,
21        num_epochs=50,
22        model_config=NeuralNetworkConfig([16, 16]),
23        optimizer_config=AdamOptimizerConfig(lr=1e-3),
24        lr_scheduler_config=CosineLearningRateSchedulerConfig(max_epochs=50),
25        max_grad_norm=1.0,
26        loss_config=CrossEntropyLossConfig(),
27    )
28
29    manager = CLManager(config)
30
31    for epoch_result in manager.train():
32        print(epoch_result)  # noqa: T201
33    print(manager.test())  # noqa: T201
34
35
36if __name__ == "__main__":
37    banknote_nn_example()

Digits Dataset

digits_nn_example.py
 1from kosmos.ml.cl_manager import CLManager
 2from kosmos.ml.config.factories.loss import CrossEntropyLossConfig
 3from kosmos.ml.config.factories.lr_scheduler import CosineLearningRateSchedulerConfig
 4from kosmos.ml.config.factories.model import NeuralNetworkConfig
 5from kosmos.ml.config.factories.optimizer import AdamOptimizerConfig
 6from kosmos.ml.config.sl_train import SLTrainConfig
 7from kosmos.ml.datasets.digits_dataset import DigitsDataset
 8from kosmos.utils.rng import RNG
 9
10
11def digits_nn_example() -> None:
12    """Run example of training and testing on the Digits dataset using a neural network."""
13    RNG.initialize(seed=1)
14
15    digits_dataset = DigitsDataset()
16
17    config = SLTrainConfig(
18        dataset=digits_dataset,
19        train_split=0.8,
20        batch_size=64,
21        num_epochs=50,
22        model_config=NeuralNetworkConfig([128, 64]),
23        optimizer_config=AdamOptimizerConfig(lr=1e-3),
24        lr_scheduler_config=CosineLearningRateSchedulerConfig(max_epochs=50),
25        max_grad_norm=1.0,
26        loss_config=CrossEntropyLossConfig(),
27    )
28
29    manager = CLManager(config)
30
31    for epoch_result in manager.train():
32        print(epoch_result)  # noqa: T201
33    print(manager.test())  # noqa: T201
34
35
36if __name__ == "__main__":
37    digits_nn_example()

Income Dataset

income_nn_example.py
 1from kosmos.ml.cl_manager import CLManager
 2from kosmos.ml.config.factories.loss import CrossEntropyLossConfig
 3from kosmos.ml.config.factories.lr_scheduler import CosineLearningRateSchedulerConfig
 4from kosmos.ml.config.factories.model import NeuralNetworkConfig
 5from kosmos.ml.config.factories.optimizer import AdamOptimizerConfig
 6from kosmos.ml.config.sl_train import SLTrainConfig
 7from kosmos.ml.datasets.income_dataset import IncomeDataset
 8from kosmos.utils.rng import RNG
 9
10
11def income_nn_example() -> None:
12    """Run example of training and testing on the Income dataset using a neural network."""
13    RNG.initialize(seed=1)
14
15    income_dataset = IncomeDataset()
16
17    config = SLTrainConfig(
18        dataset=income_dataset,
19        train_split=0.7,
20        batch_size=128,
21        num_epochs=50,
22        model_config=NeuralNetworkConfig([128, 64, 32]),
23        optimizer_config=AdamOptimizerConfig(lr=1e-3),
24        lr_scheduler_config=CosineLearningRateSchedulerConfig(max_epochs=50),
25        max_grad_norm=1.0,
26        loss_config=CrossEntropyLossConfig(),
27    )
28
29    manager = CLManager(config)
30
31    for epoch_result in manager.train():
32        print(epoch_result)  # noqa: T201
33    print(manager.test())  # noqa: T201
34
35
36if __name__ == "__main__":
37    income_nn_example()

Iris Dataset

iris_nn_example.py
 1from kosmos.ml.cl_manager import CLManager
 2from kosmos.ml.config.factories.loss import CrossEntropyLossConfig
 3from kosmos.ml.config.factories.lr_scheduler import CosineLearningRateSchedulerConfig
 4from kosmos.ml.config.factories.model import NeuralNetworkConfig
 5from kosmos.ml.config.factories.optimizer import AdamOptimizerConfig
 6from kosmos.ml.config.sl_train import SLTrainConfig
 7from kosmos.ml.datasets.iris_dataset import IrisDataset
 8from kosmos.utils.rng import RNG
 9
10
11def iris_nn_example() -> None:
12    """Run example of training and testing on the Iris dataset using a neural network."""
13    RNG.initialize(seed=1)
14
15    iris_dataset = IrisDataset()
16
17    config = SLTrainConfig(
18        dataset=iris_dataset,
19        train_split=0.7,
20        batch_size=32,
21        num_epochs=50,
22        model_config=NeuralNetworkConfig([16, 16]),
23        optimizer_config=AdamOptimizerConfig(lr=0.01),
24        lr_scheduler_config=CosineLearningRateSchedulerConfig(max_epochs=50),
25        max_grad_norm=1.0,
26        loss_config=CrossEntropyLossConfig(),
27    )
28
29    manager = CLManager(config)
30
31    for epoch_result in manager.train():
32        print(epoch_result)  # noqa: T201
33    print(manager.test())  # noqa: T201
34
35
36if __name__ == "__main__":
37    iris_nn_example()

MNIST Dataset

mnist_nn_example.py
 1from kosmos.ml.cl_manager import CLManager
 2from kosmos.ml.config.factories.loss import CrossEntropyLossConfig
 3from kosmos.ml.config.factories.lr_scheduler import CosineLearningRateSchedulerConfig
 4from kosmos.ml.config.factories.model import NeuralNetworkConfig
 5from kosmos.ml.config.factories.optimizer import AdamOptimizerConfig
 6from kosmos.ml.config.sl_train import SLTrainConfig
 7from kosmos.ml.datasets.mnist_dataset import MNISTDataset
 8from kosmos.utils.rng import RNG
 9
10
11def mnist_nn_example() -> None:
12    """Run example of training and testing on the MNIST dataset using a neural network."""
13    RNG.initialize(seed=1)
14
15    mnist_dataset = MNISTDataset()
16
17    config = SLTrainConfig(
18        dataset=mnist_dataset,
19        train_split=0.9,
20        batch_size=128,
21        num_epochs=20,
22        model_config=NeuralNetworkConfig([256, 128, 64]),
23        optimizer_config=AdamOptimizerConfig(lr=1e-3),
24        lr_scheduler_config=CosineLearningRateSchedulerConfig(max_epochs=50),
25        max_grad_norm=1.0,
26        loss_config=CrossEntropyLossConfig(),
27    )
28
29    manager = CLManager(config)
30
31    for epoch_result in manager.train():
32        print(epoch_result)  # noqa: T201
33    print(manager.test())  # noqa: T201
34
35
36if __name__ == "__main__":
37    mnist_nn_example()

QSAR Dataset

qsar_nn_example.py
 1from kosmos.ml.cl_manager import CLManager
 2from kosmos.ml.config.factories.loss import CrossEntropyLossConfig
 3from kosmos.ml.config.factories.lr_scheduler import CosineLearningRateSchedulerConfig
 4from kosmos.ml.config.factories.model import NeuralNetworkConfig
 5from kosmos.ml.config.factories.optimizer import AdamOptimizerConfig
 6from kosmos.ml.config.sl_train import SLTrainConfig
 7from kosmos.ml.datasets.qsar_dataset import QSARDataset
 8from kosmos.utils.rng import RNG
 9
10
11def qsar_nn_example() -> None:
12    """Run example of training and testing on the QSAR dataset using a neural network."""
13    RNG.initialize(seed=1)
14
15    qsar_dataset = QSARDataset()
16
17    config = SLTrainConfig(
18        dataset=qsar_dataset,
19        train_split=0.8,
20        batch_size=32,
21        num_epochs=25,
22        model_config=NeuralNetworkConfig([64, 32]),
23        optimizer_config=AdamOptimizerConfig(lr=1e-3),
24        lr_scheduler_config=CosineLearningRateSchedulerConfig(max_epochs=50),
25        max_grad_norm=1.0,
26        loss_config=CrossEntropyLossConfig(),
27    )
28
29    manager = CLManager(config)
30
31    for epoch_result in manager.train():
32        print(epoch_result)  # noqa: T201
33    print(manager.test())  # noqa: T201
34
35
36if __name__ == "__main__":
37    qsar_nn_example()

WDBC Dataset

wdbc_nn_example.py
 1from kosmos.ml.cl_manager import CLManager
 2from kosmos.ml.config.factories.loss import CrossEntropyLossConfig
 3from kosmos.ml.config.factories.lr_scheduler import CosineLearningRateSchedulerConfig
 4from kosmos.ml.config.factories.model import NeuralNetworkConfig
 5from kosmos.ml.config.factories.optimizer import AdamOptimizerConfig
 6from kosmos.ml.config.sl_train import SLTrainConfig
 7from kosmos.ml.datasets.wdbc_dataset import WDBCDataset
 8from kosmos.utils.rng import RNG
 9
10
11def wdbc_nn_example() -> None:
12    """Run example of training and testing on the WDBC dataset using a neural network."""
13    RNG.initialize(seed=1)
14
15    wdbc_dataset = WDBCDataset()
16
17    config = SLTrainConfig(
18        dataset=wdbc_dataset,
19        train_split=0.8,
20        batch_size=32,
21        num_epochs=50,
22        model_config=NeuralNetworkConfig([64, 32]),
23        optimizer_config=AdamOptimizerConfig(lr=1e-3),
24        lr_scheduler_config=CosineLearningRateSchedulerConfig(max_epochs=50),
25        max_grad_norm=1.0,
26        loss_config=CrossEntropyLossConfig(),
27    )
28
29    manager = CLManager(config)
30
31    for epoch_result in manager.train():
32        print(epoch_result)  # noqa: T201
33    print(manager.test())  # noqa: T201
34
35
36if __name__ == "__main__":
37    wdbc_nn_example()

Wine Dataset

wine_nn_example.py
 1from kosmos.ml.cl_manager import CLManager
 2from kosmos.ml.config.factories.loss import CrossEntropyLossConfig
 3from kosmos.ml.config.factories.lr_scheduler import CosineLearningRateSchedulerConfig
 4from kosmos.ml.config.factories.model import NeuralNetworkConfig
 5from kosmos.ml.config.factories.optimizer import AdamOptimizerConfig
 6from kosmos.ml.config.sl_train import SLTrainConfig
 7from kosmos.ml.datasets.wine_dataset import WineDataset
 8from kosmos.utils.rng import RNG
 9
10
11def wine_nn_example() -> None:
12    """Run example of training and testing on the Wine dataset using a neural network."""
13    RNG.initialize(seed=1)
14
15    wine_dataset = WineDataset()
16
17    config = SLTrainConfig(
18        dataset=wine_dataset,
19        train_split=0.7,
20        batch_size=32,
21        num_epochs=50,
22        model_config=NeuralNetworkConfig([64, 64]),
23        optimizer_config=AdamOptimizerConfig(lr=1e-3),
24        lr_scheduler_config=CosineLearningRateSchedulerConfig(max_epochs=50),
25        max_grad_norm=1.0,
26        loss_config=CrossEntropyLossConfig(),
27    )
28
29    manager = CLManager(config)
30
31    for epoch_result in manager.train():
32        print(epoch_result)  # noqa: T201
33    print(manager.test())  # noqa: T201
34
35
36if __name__ == "__main__":
37    wine_nn_example()