Log with Tensorboard
To better monitor the training process for neural controllers, i.e. SingleSourcingNeuralController and DualSourcingNeuralController, we can specify the tensorboard_writer parameter to log both the training loss and validation loss. The log result can then be inspected using tensorboard.
Below is an example demonstrating how to integrate tensorboard_writer into the SingleSourcingNeuralController.
>>> import torch
>>> from idinn.demand import UniformDemand
>>> from idinn.single_controller.single_neural import SingleSourcingNeuralController
>>> from torch.utils.tensorboard import SummaryWriter
>>> single_sourcing_model = SingleSourcingModel(
... lead_time=0,
... holding_cost=5,
... shortage_cost=495,
... batch_size=32,
... init_inventory=10,
... demand_generator=UniformDemand(low=0, high=4),
... )
>>> single_controller = SingleSourcingNeuralController(
... hidden_layers=[2], activation=torch.nn.CELU(alpha=1)
... )
>>> single_controller.fit(
... sourcing_model=single_sourcing_model,
... sourcing_periods=50,
... validation_sourcing_periods=1000,
... epochs=5000,
... seed=1,
... tensorboard_writer=SummaryWriter(comment="_single_1")
... )