Etth1TrainLoop.Config(
                study_name='etth1',
                experiment_name='exp000',
                base_dir='/opt/scratch',
                working_dir=PosixPath('/opt/scratch/runs/etth1/exp000'),
                doc='',
                step=Etth1TrainStep.Config(
                        model=DLinear.Config(
                                seq_len=336,
                                pred_len=96,
                                channels=7,
                                decomposition=SeriesDecomposition.Config(
                                        moving_average=MovingAverage.Config(kernel_size=25)
                                ),
                                seasonal=MeanLinear.Config(
                                        channels_in=336,
                                        channels_out=96,
                                        bias=True
                                ),
                                trend=MeanLinear.Config(
                                        channels_in=336,
                                        channels_out=96,
                                        bias=True
                                ),
                                decoder=ReferenceLinear.Config(
                                        channels_in=336,
                                        channels_out=96,
                                        bias=True
                                )
                        ),
                        optimizer=PartialConfig(<class 'functools.partial'>, <class 'torch.optim.adam.Adam'>, lr=0.0001),
                        loss=SimpleLoss.Config(
                                loss_fn=<function priml.loss.simple_loss.mse at 0xdefacedeface>,
                                target_key='label',
                                kwargs={'reduction': 'mean'},
                                channels_out=-1
                        ),
                        accumulate_grad_batches=1,
                        drop_partial_accumulation_on_epoch_end=True,
                        train_budget_steps=inf,
                        train_budget_sec=inf,
                        train_budget_epochs=10,
                        lr_schedule=PartialConfig(<class 'functools.partial'>, <function priml.baselines.etth1.experiments.dlinear_type1 at 0xdefacedeface>, epochs=10),
                        parallelism=NoParallel.Config(device=None),
                        model_quantization=NoModelQuantization.Config(),
                        activation_memoization=DefaultActivationStorage.Config(),
                        compile=None,
                        ema=NoEMA.Config(),
                        gradient_clip_norm=inf,
                        skip_step_on_nonfinite_grad=False,
                        device_init='eager',
                        dtype_autocast=None,
                        autocast_cache_enabled=False,
                        seed=2_021
                ),
                dataset=Etth1Data.Config(
                        base_dir='/opt/scratch',
                        working_dir=PosixPath('/opt/scratch/datasets/etth1'),
                        channels=7,
                        train_rows=8_640,
                        val_rows=2_880,
                        test_rows=2_880,
                        seq_len=336,
                        pred_len=96,
                        batch_size=8,
                        eval_batch_size=8,
                        device='cpu'
                ),
                metrics_train={},
                metrics_eval={'': ForecastMSE.Config()},
                checkpointer=Etth1Checkpointer.Config(
                        base_dir=PosixPath('/opt/scratch/runs/etth1/exp000'),
                        working_dir=PosixPath('/opt/scratch/runs/etth1/exp000/checkpoints'),
                        filename='step_{step:08d}.pt',
                        save_every=10_260,
                        keep_last_n=3,
                        keep_every=0,
                        storer=SyncLocalStateDictStorer.Config(),
                        resume=True,
                        resume_step=-1,
                        allow_checkpoint_overwrite=False,
                        best_metric='total_loss',
                        best_mode='min'
                ),
                profiler=None,
                phase_timer=PhaseTimer.Config(
                        enabled=False,
                        torch_profile=False,
                        base_dir=PosixPath('/opt/scratch/runs/etth1/exp000'),
                        working_dir=PosixPath('/opt/scratch/runs/etth1/exp000/profiling'),
                        heartbeat_interval_sec=20.0,
                        fault_dump_interval_sec=40.0,
                        cuda_events=False
                ),
                tracker=None,
                max_steps=10_260,
                max_epochs=10,
                max_time=inf,
                max_time_kind='wall',
                max_eval_time=inf,
                eval_stop_on_time_limit=False,
                num_steps_eval=inf,
                num_steps_log=100,
                early_train_log_steps=0,
                eval_every_epoch=True,
                eval_extras_every_eval=False,
                eval_warmup_batches=0,
                eval_only=False,
                restore_rng_state=True,
                seed=2_021,
                num_steps_garbage_collect=inf,
                mesh_dim_model_seed='pp',
                mesh_dim_data_seed='dp',
                runtime=SingleProcess.Config(
                        device='cpu',
                        deterministic=False,
                        float32_matmul_precision=None
                ),
                patience=3
        )
