MCPcopy Index your code
hub / github.com/JetBrains-Research/code2seq / train

Function train

code2seq/utils/train.py:11–56  ·  view source on GitHub ↗
(model: LightningModule, data_module: LightningDataModule, config: DictConfig)

Source from the content-addressed store, hash-verified

9
10
11def train(model: LightningModule, data_module: LightningDataModule, config: DictConfig):
12 seed_everything(config.seed)
13 params = config.train
14
15 # define logger
16 wandb_logger = WandbLogger(
17 project=config.wandb.project,
18 group=config.wandb.group,
19 log_model=False,
20 offline=config.wandb.offline,
21 config=OmegaConf.to_container(config),
22 )
23
24 # define model checkpoint callback
25 checkpoint_callback = ModelCheckpointWithUpload(
26 dirpath=join(wandb_logger.experiment.dir, "checkpoints"),
27 filename="{epoch:02d}-val_loss={val/loss:.4f}",
28 monitor="val/loss",
29 every_n_epochs=params.save_every_epoch,
30 save_top_k=-1,
31 auto_insert_metric_name=False,
32 )
33 # define early stopping callback
34 early_stopping_callback = EarlyStopping(patience=params.patience, monitor="val/loss", verbose=True, mode="min")
35 # define callback for printing intermediate result
36 print_epoch_result_callback = PrintEpochResultCallback(after_test=False)
37 # use gpu if it exists
38 gpu = 1 if torch.cuda.is_available() else None
39 # define learning rate logger
40 lr_logger = LearningRateMonitor("step")
41 # define progress bar callback
42 progress_bar = RichProgressBar(refresh_rate_per_second=config.progress_bar_refresh_rate)
43 trainer = Trainer(
44 max_epochs=params.n_epochs,
45 gradient_clip_val=params.clip_norm,
46 deterministic=True,
47 check_val_every_n_epoch=params.val_every_epoch,
48 log_every_n_steps=params.log_every_n_steps,
49 logger=wandb_logger,
50 gpus=gpu,
51 callbacks=[lr_logger, early_stopping_callback, checkpoint_callback, print_epoch_result_callback, progress_bar],
52 resume_from_checkpoint=config.get("checkpoint", None),
53 )
54
55 trainer.fit(model=model, datamodule=data_module)
56 trainer.test(datamodule=data_module, ckpt_path="best")

Callers 3

train_typed_code2seqFunction · 0.90
train_code2seqFunction · 0.90
train_code2classFunction · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected