From e5b6e5ad080ce2be9347bd5c335ec7ba7e5faf44 Mon Sep 17 00:00:00 2001 From: William Falcon Date: Wed, 17 Jul 2019 14:57:18 -0500 Subject: [PATCH] Deployed 9051eb0 with MkDocs version: 1.0.4 --- Trainer/Training Loop/index.html | 2 +- search/search_index.json | 2 +- sitemap.xml | 28 ++++++++++++++-------------- sitemap.xml.gz | Bin 205 -> 205 bytes source/_static/tf_loss.png | Bin 0 -> 224597 bytes source/_static/tf_tags.png | Bin 0 -> 219247 bytes 6 files changed, 16 insertions(+), 16 deletions(-) create mode 100644 source/_static/tf_loss.png create mode 100644 source/_static/tf_tags.png diff --git a/Trainer/Training Loop/index.html b/Trainer/Training Loop/index.html index c75e6393..2b250a72 100644 --- a/Trainer/Training Loop/index.html +++ b/Trainer/Training Loop/index.html @@ -632,7 +632,7 @@ trainer = Trainer(accumulate_grad_batches=1) trainer = Trainer(lr_scheduler_milestones=None) # cut LR by 10 at 100, 200, and 300 epochs -trainer = Trainer(lr_scheduler_milestones=[100, 200, 300]) +trainer = Trainer(lr_scheduler_milestones='100, 200, 300')
diff --git a/search/search_index.json b/search/search_index.json index 47291372..e6a086d0 100644 --- a/search/search_index.json +++ b/search/search_index.json @@ -1 +1 @@ -{"config":{"lang":["en"],"prebuild_index":false,"separator":"[\\s\\-]+"},"docs":[{"location":"","text":"New project Quick Start To start a new project define these two files. Define a LightningModule Pick a trainer Basic CPU Trainer GPU cluster Trainer Docs shortcuts LightningModule Trainer Quick start examples CPU example Hyperparameter search on single GPU Hyperparameter search on multiple GPUs on same node Hyperparameter search on a SLURM HPC cluster Checkpointing Model saving Model loading Computing cluster (SLURM) Running grid search on a cluster Walltime auto-resubmit Debugging Fast dev run Inspect gradient norms Log GPU usage Make model overfit on subset of data Print the parameter count by layer Pring which gradients are nan Distributed training 16-bit mixed precision Multi-GPU Multi-node Single GPU Self-balancing architecture Experiment Logging Display metrics in progress bar Log arbitrary metrics Log metric row every k batches Process position Save a snapshot of all hyperparameters Snapshot code for a training run Write logs file to csv every k batches Training loop Accumulate gradients Anneal Learning rate Force training for min or max epochs Force disable early stop Gradient Clipping Use multiple optimizers (like GANs) Set how much of the training set to check (1-100%) Validation loop Check validation every n epochs Set how much of the validation set to check Set how much of the test set to check Set validation check frequency within 1 training epoch Set the number of validation sanity steps","title":"Home"},{"location":"#new-project-quick-start","text":"To start a new project define these two files. Define a LightningModule Pick a trainer Basic CPU Trainer GPU cluster Trainer","title":"New project Quick Start"},{"location":"#docs-shortcuts","text":"LightningModule Trainer","title":"Docs shortcuts"},{"location":"#quick-start-examples","text":"CPU example Hyperparameter search on single GPU Hyperparameter search on multiple GPUs on same node Hyperparameter search on a SLURM HPC cluster","title":"Quick start examples"},{"location":"#checkpointing","text":"Model saving Model loading","title":"Checkpointing"},{"location":"#computing-cluster-slurm","text":"Running grid search on a cluster Walltime auto-resubmit","title":"Computing cluster (SLURM)"},{"location":"#debugging","text":"Fast dev run Inspect gradient norms Log GPU usage Make model overfit on subset of data Print the parameter count by layer Pring which gradients are nan","title":"Debugging"},{"location":"#distributed-training","text":"16-bit mixed precision Multi-GPU Multi-node Single GPU Self-balancing architecture","title":"Distributed training"},{"location":"#experiment-logging","text":"Display metrics in progress bar Log arbitrary metrics Log metric row every k batches Process position Save a snapshot of all hyperparameters Snapshot code for a training run Write logs file to csv every k batches","title":"Experiment Logging"},{"location":"#training-loop","text":"Accumulate gradients Anneal Learning rate Force training for min or max epochs Force disable early stop Gradient Clipping Use multiple optimizers (like GANs) Set how much of the training set to check (1-100%)","title":"Training loop"},{"location":"#validation-loop","text":"Check validation every n epochs Set how much of the validation set to check Set how much of the test set to check Set validation check frequency within 1 training epoch Set the number of validation sanity steps","title":"Validation loop"},{"location":"LightningModule/RequiredTrainerInterface/","text":"Lightning Module interface [ Github Code ] A lightning module is a strict superclass of nn.Module, it provides a standard interface for the trainer to interact with the model. The easiest thing to do is copy this template and modify accordingly. Otherwise, to Define a Lightning Module, implement the following methods: Required : training_step validation_step validation_end configure_optimizers get_save_dict load_model_specific tng_dataloader tng_dataloader test_dataloader Optional : update_tng_log_metrics add_model_specific_args training_step def training_step(self, data_batch, batch_nb) In this step you'd normally do the forward pass and calculate the loss for a batch. You can also do fancier things like multiple forward passes or something specific to your model. Params Param description data_batch The output of your dataloader. A tensor, tuple or list batch_nb Integer displaying which batch this is Return Dictionary or OrderedDict key value is required loss tensor scalar Y prog Dict for progress bar display. Must have only tensors N Example def training_step(self, data_batch, batch_nb): x, y, z = data_batch # implement your own out = self.forward(x) loss = self.loss(out, x) output = { 'loss': loss, # required 'prog': {'tng_loss': loss, 'batch_nb': batch_nb} # optional } # return a dict return output validation_step def validation_step(self, data_batch, batch_nb) In this step you'd normally do the forward pass and calculate the loss for a batch. You can also do fancier things like multiple forward passes or something specific to your model. This is most likely the same as your training_step. But unlike training step, the outputs from here will go to validation_end for collation. Params Param description data_batch The output of your dataloader. A tensor, tuple or list batch_nb Integer displaying which batch this is Return Return description optional dict Dict of OrderedDict with metrics to display in progress bar. All keys must be tensors. Y Example def validation_step(self, data_batch, batch_nb): x, y, z = data_batch # implement your own out = self.forward(x) loss = self.loss(out, x) # calculate acc labels_hat = torch.argmax(out, dim=1) val_acc = torch.sum(y == labels_hat).item() / (len(y) * 1.0) # all optional... # return whatever you need for the collation function validation_end output = OrderedDict({ 'val_loss': loss_val, 'val_acc': torch.tensor(val_acc), # everything must be a tensor }) # return an optional dict return output validation_end def validation_end(self, outputs) Called at the end of the validation loop with the output of each validation_step. Params Param description outputs List of outputs you defined in validation_step Return Return description optional dict Dict of OrderedDict with metrics to display in progress bar Y Example def validation_end(self, outputs): \"\"\" Called at the end of validation to aggregate outputs :param outputs: list of individual outputs of each validation step :return: \"\"\" val_loss_mean = 0 val_acc_mean = 0 for output in outputs: val_loss_mean += output['val_loss'] val_acc_mean += output['val_acc'] val_loss_mean /= len(outputs) val_acc_mean /= len(outputs) tqdm_dic = {'val_loss': val_loss_mean.item(), 'val_acc': val_acc_mean.item()} return tqdm_dic configure_optimizers def configure_optimizers(self) Set up as many optimizers as you need. Normally you'd need one. But in the case of GANs or something more esoteric you might have multiple. Lightning will call .backward() and .step() on each one. If you use 16 bit precision it will also handle that. Return List - List of optimizers Example # most cases def configure_optimizers(self): opt = Adam(lr=0.01) return [opt] # gan example def configure_optimizers(self): generator_opt = Adam(lr=0.01) disriminator_opt = Adam(lr=0.02) return [generator_opt, disriminator_opt] get_save_dict def get_save_dict(self) Called by lightning to checkpoint your model. Lightning saves current epoch, current batch nb, etc... All you have to return is what specifically about your lightning model you want to checkpoint. Return Dictionary - No required keys. Most of the time as described in this example. Example def get_save_dict(self): # 99% of use cases this is all you need to return checkpoint = {'state_dict': self.state_dict()} return checkpoint load_model_specific def load_model_specific(self, checkpoint) Called by lightning to restore your model. This is your chance to restore your model using the keys you added in get_save_dict. Lightning will automatically restore current epoch, batch nb, etc. Return Nothing Example def load_model_specific(self, checkpoint): # you defined 'state_dict' in get_save_dict() self.load_state_dict(checkpoint['state_dict']) tng_dataloader @property def tng_dataloader(self) Called by lightning during training loop. Define it as a property. Return Pytorch DataLoader Example @property def tng_dataloader(self): if self._tng_dataloader is None: try: transform = transforms.Compose([transforms.ToTensor(), transforms.Normalize((0.5,), (1.0,))]) dataset = MNIST(root='/path/to/mnist/', train=True, transform=transform, download=True) loader = torch.utils.data.DataLoader( dataset=dataset, batch_size=self.hparams.batch_size, shuffle=True ) self._tng_dataloader = loader except Exception as e: raise e return self._tng_dataloader val_dataloader @property def tng_dataloader(self) Called by lightning during validation loop. Define it as a property. Return Pytorch DataLoader Example @property def val_dataloader(self): if self._val_dataloader is None: try: transform = transforms.Compose([transforms.ToTensor(), transforms.Normalize((0.5,), (1.0,))]) dataset = MNIST(root='/path/to/mnist/', train=False, transform=transform, download=True) loader = torch.utils.data.DataLoader( dataset=dataset, batch_size=self.hparams.batch_size, shuffle=True ) self._val_dataloader = loader except Exception as e: raise e return self._val_dataloader test_dataloader @property def test_dataloader(self) Called by lightning during test loop. Define it as a property. Return Pytorch DataLoader Example @property def test_dataloader(self): if self._test_dataloader is None: try: transform = transforms.Compose([transforms.ToTensor(), transforms.Normalize((0.5,), (1.0,))]) dataset = MNIST(root='/path/to/mnist/', train=False, transform=transform, download=True) loader = torch.utils.data.DataLoader( dataset=dataset, batch_size=self.hparams.batch_size, shuffle=True ) self._test_dataloader = loader except Exception as e: raise e return self._test_dataloader update_tng_log_metrics def update_tng_log_metrics(self, logs) Called by lightning right before it logs metrics for this batch. This is a chance to ammend or add to the metrics about to be logged. Return Dict Example def update_tng_log_metrics(self, logs): # modify or add to logs return logs add_model_specific_args @staticmethod def add_model_specific_args(parent_parser, root_dir) Lightning has a list of default argparse commands. This method is your chance to add or modify commands specific to your model. The hyperparameter argument parser is available anywhere in your model by calling self.hparams. Return An argument parser Example @staticmethod def add_model_specific_args(parent_parser, root_dir): parser = HyperOptArgumentParser(strategy=parent_parser.strategy, parents=[parent_parser]) # param overwrites # parser.set_defaults(gradient_clip=5.0) # network params parser.opt_list('--drop_prob', default=0.2, options=[0.2, 0.5], type=float, tunable=False) parser.add_argument('--in_features', default=28*28) parser.add_argument('--out_features', default=10) parser.add_argument('--hidden_dim', default=50000) # use 500 for CPU, 50000 for GPU to see speed difference # data parser.add_argument('--data_root', default=os.path.join(root_dir, 'mnist'), type=str) # training params (opt) parser.opt_list('--learning_rate', default=0.001, type=float, options=[0.0001, 0.0005, 0.001, 0.005], tunable=False) parser.opt_list('--batch_size', default=256, type=int, options=[32, 64, 128, 256], tunable=False) parser.opt_list('--optimizer_name', default='adam', type=str, options=['adam'], tunable=False) return parser","title":"Lightning Module interface"},{"location":"LightningModule/RequiredTrainerInterface/#lightning-module-interface","text":"[ Github Code ] A lightning module is a strict superclass of nn.Module, it provides a standard interface for the trainer to interact with the model. The easiest thing to do is copy this template and modify accordingly. Otherwise, to Define a Lightning Module, implement the following methods: Required : training_step validation_step validation_end configure_optimizers get_save_dict load_model_specific tng_dataloader tng_dataloader test_dataloader Optional : update_tng_log_metrics add_model_specific_args","title":"Lightning Module interface"},{"location":"LightningModule/RequiredTrainerInterface/#training_step","text":"def training_step(self, data_batch, batch_nb) In this step you'd normally do the forward pass and calculate the loss for a batch. You can also do fancier things like multiple forward passes or something specific to your model. Params Param description data_batch The output of your dataloader. A tensor, tuple or list batch_nb Integer displaying which batch this is Return Dictionary or OrderedDict key value is required loss tensor scalar Y prog Dict for progress bar display. Must have only tensors N Example def training_step(self, data_batch, batch_nb): x, y, z = data_batch # implement your own out = self.forward(x) loss = self.loss(out, x) output = { 'loss': loss, # required 'prog': {'tng_loss': loss, 'batch_nb': batch_nb} # optional } # return a dict return output","title":"training_step"},{"location":"LightningModule/RequiredTrainerInterface/#validation_step","text":"def validation_step(self, data_batch, batch_nb) In this step you'd normally do the forward pass and calculate the loss for a batch. You can also do fancier things like multiple forward passes or something specific to your model. This is most likely the same as your training_step. But unlike training step, the outputs from here will go to validation_end for collation. Params Param description data_batch The output of your dataloader. A tensor, tuple or list batch_nb Integer displaying which batch this is Return Return description optional dict Dict of OrderedDict with metrics to display in progress bar. All keys must be tensors. Y Example def validation_step(self, data_batch, batch_nb): x, y, z = data_batch # implement your own out = self.forward(x) loss = self.loss(out, x) # calculate acc labels_hat = torch.argmax(out, dim=1) val_acc = torch.sum(y == labels_hat).item() / (len(y) * 1.0) # all optional... # return whatever you need for the collation function validation_end output = OrderedDict({ 'val_loss': loss_val, 'val_acc': torch.tensor(val_acc), # everything must be a tensor }) # return an optional dict return output","title":"validation_step"},{"location":"LightningModule/RequiredTrainerInterface/#validation_end","text":"def validation_end(self, outputs) Called at the end of the validation loop with the output of each validation_step. Params Param description outputs List of outputs you defined in validation_step Return Return description optional dict Dict of OrderedDict with metrics to display in progress bar Y Example def validation_end(self, outputs): \"\"\" Called at the end of validation to aggregate outputs :param outputs: list of individual outputs of each validation step :return: \"\"\" val_loss_mean = 0 val_acc_mean = 0 for output in outputs: val_loss_mean += output['val_loss'] val_acc_mean += output['val_acc'] val_loss_mean /= len(outputs) val_acc_mean /= len(outputs) tqdm_dic = {'val_loss': val_loss_mean.item(), 'val_acc': val_acc_mean.item()} return tqdm_dic","title":"validation_end"},{"location":"LightningModule/RequiredTrainerInterface/#configure_optimizers","text":"def configure_optimizers(self) Set up as many optimizers as you need. Normally you'd need one. But in the case of GANs or something more esoteric you might have multiple. Lightning will call .backward() and .step() on each one. If you use 16 bit precision it will also handle that.","title":"configure_optimizers"},{"location":"LightningModule/RequiredTrainerInterface/#return","text":"List - List of optimizers Example # most cases def configure_optimizers(self): opt = Adam(lr=0.01) return [opt] # gan example def configure_optimizers(self): generator_opt = Adam(lr=0.01) disriminator_opt = Adam(lr=0.02) return [generator_opt, disriminator_opt]","title":"Return"},{"location":"LightningModule/RequiredTrainerInterface/#get_save_dict","text":"def get_save_dict(self) Called by lightning to checkpoint your model. Lightning saves current epoch, current batch nb, etc... All you have to return is what specifically about your lightning model you want to checkpoint.","title":"get_save_dict"},{"location":"LightningModule/RequiredTrainerInterface/#return_1","text":"Dictionary - No required keys. Most of the time as described in this example. Example def get_save_dict(self): # 99% of use cases this is all you need to return checkpoint = {'state_dict': self.state_dict()} return checkpoint","title":"Return"},{"location":"LightningModule/RequiredTrainerInterface/#load_model_specific","text":"def load_model_specific(self, checkpoint) Called by lightning to restore your model. This is your chance to restore your model using the keys you added in get_save_dict. Lightning will automatically restore current epoch, batch nb, etc.","title":"load_model_specific"},{"location":"LightningModule/RequiredTrainerInterface/#return_2","text":"Nothing Example def load_model_specific(self, checkpoint): # you defined 'state_dict' in get_save_dict() self.load_state_dict(checkpoint['state_dict'])","title":"Return"},{"location":"LightningModule/RequiredTrainerInterface/#tng_dataloader","text":"@property def tng_dataloader(self) Called by lightning during training loop. Define it as a property.","title":"tng_dataloader"},{"location":"LightningModule/RequiredTrainerInterface/#return_3","text":"Pytorch DataLoader Example @property def tng_dataloader(self): if self._tng_dataloader is None: try: transform = transforms.Compose([transforms.ToTensor(), transforms.Normalize((0.5,), (1.0,))]) dataset = MNIST(root='/path/to/mnist/', train=True, transform=transform, download=True) loader = torch.utils.data.DataLoader( dataset=dataset, batch_size=self.hparams.batch_size, shuffle=True ) self._tng_dataloader = loader except Exception as e: raise e return self._tng_dataloader","title":"Return"},{"location":"LightningModule/RequiredTrainerInterface/#val_dataloader","text":"@property def tng_dataloader(self) Called by lightning during validation loop. Define it as a property.","title":"val_dataloader"},{"location":"LightningModule/RequiredTrainerInterface/#return_4","text":"Pytorch DataLoader Example @property def val_dataloader(self): if self._val_dataloader is None: try: transform = transforms.Compose([transforms.ToTensor(), transforms.Normalize((0.5,), (1.0,))]) dataset = MNIST(root='/path/to/mnist/', train=False, transform=transform, download=True) loader = torch.utils.data.DataLoader( dataset=dataset, batch_size=self.hparams.batch_size, shuffle=True ) self._val_dataloader = loader except Exception as e: raise e return self._val_dataloader","title":"Return"},{"location":"LightningModule/RequiredTrainerInterface/#test_dataloader","text":"@property def test_dataloader(self) Called by lightning during test loop. Define it as a property.","title":"test_dataloader"},{"location":"LightningModule/RequiredTrainerInterface/#return_5","text":"Pytorch DataLoader Example @property def test_dataloader(self): if self._test_dataloader is None: try: transform = transforms.Compose([transforms.ToTensor(), transforms.Normalize((0.5,), (1.0,))]) dataset = MNIST(root='/path/to/mnist/', train=False, transform=transform, download=True) loader = torch.utils.data.DataLoader( dataset=dataset, batch_size=self.hparams.batch_size, shuffle=True ) self._test_dataloader = loader except Exception as e: raise e return self._test_dataloader","title":"Return"},{"location":"LightningModule/RequiredTrainerInterface/#update_tng_log_metrics","text":"def update_tng_log_metrics(self, logs) Called by lightning right before it logs metrics for this batch. This is a chance to ammend or add to the metrics about to be logged.","title":"update_tng_log_metrics"},{"location":"LightningModule/RequiredTrainerInterface/#return_6","text":"Dict Example def update_tng_log_metrics(self, logs): # modify or add to logs return logs","title":"Return"},{"location":"LightningModule/RequiredTrainerInterface/#add_model_specific_args","text":"@staticmethod def add_model_specific_args(parent_parser, root_dir) Lightning has a list of default argparse commands. This method is your chance to add or modify commands specific to your model. The hyperparameter argument parser is available anywhere in your model by calling self.hparams.","title":"add_model_specific_args"},{"location":"LightningModule/RequiredTrainerInterface/#return_7","text":"An argument parser Example @staticmethod def add_model_specific_args(parent_parser, root_dir): parser = HyperOptArgumentParser(strategy=parent_parser.strategy, parents=[parent_parser]) # param overwrites # parser.set_defaults(gradient_clip=5.0) # network params parser.opt_list('--drop_prob', default=0.2, options=[0.2, 0.5], type=float, tunable=False) parser.add_argument('--in_features', default=28*28) parser.add_argument('--out_features', default=10) parser.add_argument('--hidden_dim', default=50000) # use 500 for CPU, 50000 for GPU to see speed difference # data parser.add_argument('--data_root', default=os.path.join(root_dir, 'mnist'), type=str) # training params (opt) parser.opt_list('--learning_rate', default=0.001, type=float, options=[0.0001, 0.0005, 0.001, 0.005], tunable=False) parser.opt_list('--batch_size', default=256, type=int, options=[32, 64, 128, 256], tunable=False) parser.opt_list('--optimizer_name', default='adam', type=str, options=['adam'], tunable=False) return parser","title":"Return"},{"location":"LightningModule/methods/","text":"Lightning modules are strict superclasses of torch.nn.Module. A LightningModule offers the following in addition to that API. freeze Freeze all params for inference model = MyLightningModule(...) model.freeze() load_from_metrics This is the easiest/fastest way which uses the meta_tags.csv file from test-tube to rebuild the model. The meta_tags.csv file can be found in the test-tube experiment save_dir. pretrained_model = MyLightningModule.load_from_metrics( weights_path='/path/to/pytorch_checkpoint.ckpt', tags_csv='/path/to/test_tube/experiment/version/meta_tags.csv', on_gpu=True, map_location=None ) # predict pretrained_model.freeze() y_hat = pretrained_model(x) Params Param description weights_path Path to a pytorch checkpoint tags_csv Path to meta_tags.csv file generated by the test-tube Experiment on_gpu if True, puts model on GPU. Make sure to use transforms option if model devices have changed map_location A dictionary mapping saved weight GPU devices to new GPU devices Returns LightningModule - The pretrained LightningModule unfreeze Unfreeze all params for inference model = MyLightningModule(...) model.unfreeze()","title":"Methods"},{"location":"LightningModule/methods/#freeze","text":"Freeze all params for inference model = MyLightningModule(...) model.freeze()","title":"freeze"},{"location":"LightningModule/methods/#load_from_metrics","text":"This is the easiest/fastest way which uses the meta_tags.csv file from test-tube to rebuild the model. The meta_tags.csv file can be found in the test-tube experiment save_dir. pretrained_model = MyLightningModule.load_from_metrics( weights_path='/path/to/pytorch_checkpoint.ckpt', tags_csv='/path/to/test_tube/experiment/version/meta_tags.csv', on_gpu=True, map_location=None ) # predict pretrained_model.freeze() y_hat = pretrained_model(x) Params Param description weights_path Path to a pytorch checkpoint tags_csv Path to meta_tags.csv file generated by the test-tube Experiment on_gpu if True, puts model on GPU. Make sure to use transforms option if model devices have changed map_location A dictionary mapping saved weight GPU devices to new GPU devices Returns LightningModule - The pretrained LightningModule","title":"load_from_metrics"},{"location":"LightningModule/methods/#unfreeze","text":"Unfreeze all params for inference model = MyLightningModule(...) model.unfreeze()","title":"unfreeze"},{"location":"LightningModule/properties/","text":"A LightningModule has the following properties which you can access at any time current_epoch The current epoch dtype Current dtype experiment An instance of test-tube Experiment which you can use to log anything for tensorboarX. self.experiment.add_embedding(...) self.experiment.log({'val_loss': 0.9}) self.experiment.add_scalars(...) global_step Total training batches seen across all epochs gradient_clip The current gradient clip value on_gpu True if your model is currently running on GPUs. Useful to set flags around the LightningModule for different CPU vs GPU behavior. trainer Last resort access to any state the trainer has. Changing certain properties here could affect your training run. self.trainer.optimizers self.trainer.current_epoch ...","title":"Properties"},{"location":"LightningModule/properties/#current_epoch","text":"The current epoch","title":"current_epoch"},{"location":"LightningModule/properties/#dtype","text":"Current dtype","title":"dtype"},{"location":"LightningModule/properties/#experiment","text":"An instance of test-tube Experiment which you can use to log anything for tensorboarX. self.experiment.add_embedding(...) self.experiment.log({'val_loss': 0.9}) self.experiment.add_scalars(...)","title":"experiment"},{"location":"LightningModule/properties/#global_step","text":"Total training batches seen across all epochs","title":"global_step"},{"location":"LightningModule/properties/#gradient_clip","text":"The current gradient clip value","title":"gradient_clip"},{"location":"LightningModule/properties/#on_gpu","text":"True if your model is currently running on GPUs. Useful to set flags around the LightningModule for different CPU vs GPU behavior.","title":"on_gpu"},{"location":"LightningModule/properties/#trainer","text":"Last resort access to any state the trainer has. Changing certain properties here could affect your training run. self.trainer.optimizers self.trainer.current_epoch ...","title":"trainer"},{"location":"Trainer/","text":"Trainer [ Github Code ] The lightning trainer abstracts best practices for running a training, val, test routine. It calls parts of your model when it wants to hand over full control and otherwise makes training assumptions which are now standard practice in AI research. This is the basic use of the trainer: from pytorch_lightning import Trainer model = LightningTemplate() trainer = Trainer() trainer.fit(model) But of course the fun is in all the advanced things it can do: Checkpointing Model saving Model loading Computing cluster (SLURM) Running grid search on a cluster Walltime auto-resubmit Debugging Fast dev run Inspect gradient norms Log GPU usage Make model overfit on subset of data Print the parameter count by layer Pring which gradients are nan Distributed training 16-bit mixed precision Multi-GPU Multi-node Single GPU Self-balancing architecture Experiment Logging Display metrics in progress bar Log arbitrary metrics Log metric row every k batches Process position Save a snapshot of all hyperparameters Snapshot code for a training run Write logs file to csv every k batches Training loop Accumulate gradients Anneal Learning rate Force training for min or max epochs Force disable early stop Use multiple optimizers (like GANs) Set how much of the training set to check (1-100%) Validation loop Check validation every n epochs Set how much of the validation set to check Set how much of the test set to check Set validation check frequency within 1 training epoch Set the number of validation sanity steps","title":"Trainer"},{"location":"Trainer/#trainer","text":"[ Github Code ] The lightning trainer abstracts best practices for running a training, val, test routine. It calls parts of your model when it wants to hand over full control and otherwise makes training assumptions which are now standard practice in AI research. This is the basic use of the trainer: from pytorch_lightning import Trainer model = LightningTemplate() trainer = Trainer() trainer.fit(model) But of course the fun is in all the advanced things it can do: Checkpointing Model saving Model loading Computing cluster (SLURM) Running grid search on a cluster Walltime auto-resubmit Debugging Fast dev run Inspect gradient norms Log GPU usage Make model overfit on subset of data Print the parameter count by layer Pring which gradients are nan Distributed training 16-bit mixed precision Multi-GPU Multi-node Single GPU Self-balancing architecture Experiment Logging Display metrics in progress bar Log arbitrary metrics Log metric row every k batches Process position Save a snapshot of all hyperparameters Snapshot code for a training run Write logs file to csv every k batches Training loop Accumulate gradients Anneal Learning rate Force training for min or max epochs Force disable early stop Use multiple optimizers (like GANs) Set how much of the training set to check (1-100%) Validation loop Check validation every n epochs Set how much of the validation set to check Set how much of the test set to check Set validation check frequency within 1 training epoch Set the number of validation sanity steps","title":"Trainer"},{"location":"Trainer/Checkpointing/","text":"Lightning can automate saving and loading checkpoints. Model saving To enable checkpointing, define the checkpoint callback and give it to the trainer. from pytorch_lightning.utils.pt_callbacks import ModelCheckpoint checkpoint_callback = ModelCheckpoint( filepath='/path/to/store/weights.ckpt', save_best_only=True, verbose=True, monitor='val_loss', mode='min' ) trainer = Trainer(checkpoint_callback=checkpoint_callback)","title":"Checkpointing"},{"location":"Trainer/Checkpointing/#model-saving","text":"To enable checkpointing, define the checkpoint callback and give it to the trainer. from pytorch_lightning.utils.pt_callbacks import ModelCheckpoint checkpoint_callback = ModelCheckpoint( filepath='/path/to/store/weights.ckpt', save_best_only=True, verbose=True, monitor='val_loss', mode='min' ) trainer = Trainer(checkpoint_callback=checkpoint_callback)","title":"Model saving"},{"location":"Trainer/Distributed training/","text":"Lightning makes multi-gpu training and 16 bit training trivial. Note: None of the flags below require changing anything about your lightningModel definition. 16-bit mixed precision 16 bit precision can cut your memory footprint by half. If using volta architecture GPUs it can give a dramatic training speed-up as well. First, install apex (if install fails, look here ): $ git clone https://github.com/NVIDIA/apex $ cd apex $ pip install -v --no-cache-dir --global-option=\"--cpp_ext\" --global-option=\"--cuda_ext\" ./ then set this use_amp to True. # DEFAULT trainer = Trainer(amp_level='O2', use_amp=False) Single-gpu Make sure you're on a GPU machine. # set these flags os.environ[\"CUDA_DEVICE_ORDER\"] = \"PCI_BUS_ID\" os.environ[\"CUDA_VISIBLE_DEVICES\"] = \"0\" # DEFAULT trainer = Trainer(gpus=[0]) multi-gpu Make sure you're on a GPU machine. You can set as many GPUs as you want. In this setting, the model will run on all 8 GPUs at once using DataParallel under the hood. # set these flags os.environ[\"CUDA_DEVICE_ORDER\"] = \"PCI_BUS_ID\" os.environ[\"CUDA_VISIBLE_DEVICES\"] = \"0,1,2,3,4,5,6,7\" # DEFAULT trainer = Trainer(gpus=[0,1,2,3,4,5,6,7]) Multi-node COMING SOON. Self-balancing architecture Here lightning distributes parts of your module across available GPUs to optimize for speed and memory. COMING SOON.","title":"Distributed training"},{"location":"Trainer/Distributed training/#16-bit-mixed-precision","text":"16 bit precision can cut your memory footprint by half. If using volta architecture GPUs it can give a dramatic training speed-up as well. First, install apex (if install fails, look here ): $ git clone https://github.com/NVIDIA/apex $ cd apex $ pip install -v --no-cache-dir --global-option=\"--cpp_ext\" --global-option=\"--cuda_ext\" ./ then set this use_amp to True. # DEFAULT trainer = Trainer(amp_level='O2', use_amp=False)","title":"16-bit mixed precision"},{"location":"Trainer/Distributed training/#single-gpu","text":"Make sure you're on a GPU machine. # set these flags os.environ[\"CUDA_DEVICE_ORDER\"] = \"PCI_BUS_ID\" os.environ[\"CUDA_VISIBLE_DEVICES\"] = \"0\" # DEFAULT trainer = Trainer(gpus=[0])","title":"Single-gpu"},{"location":"Trainer/Distributed training/#multi-gpu","text":"Make sure you're on a GPU machine. You can set as many GPUs as you want. In this setting, the model will run on all 8 GPUs at once using DataParallel under the hood. # set these flags os.environ[\"CUDA_DEVICE_ORDER\"] = \"PCI_BUS_ID\" os.environ[\"CUDA_VISIBLE_DEVICES\"] = \"0,1,2,3,4,5,6,7\" # DEFAULT trainer = Trainer(gpus=[0,1,2,3,4,5,6,7])","title":"multi-gpu"},{"location":"Trainer/Distributed training/#multi-node","text":"COMING SOON.","title":"Multi-node"},{"location":"Trainer/Distributed training/#self-balancing-architecture","text":"Here lightning distributes parts of your module across available GPUs to optimize for speed and memory. COMING SOON.","title":"Self-balancing architecture"},{"location":"Trainer/Logging/","text":"Lighting offers a few options for logging information about model, gpu usage, etc (via test-tube). It also offers printing options for training monitoring. Display metrics in progress bar # DEFAULT trainer = Trainer(progress_bar=True) Log metric row every k batches Every k batches lightning will make an entry in the metrics log # DEFAULT (ie: save a .csv log file every 10 batches) trainer = Trainer(add_log_row_interval=10) Process position When running multiple models on the same machine we want to decide which progress bar to use. Lightning will stack progress bars according to this value. # DEFAULT trainer = Trainer(process_position=0) # if this is the second model on the node, show the second progress bar below trainer = Trainer(process_position=1) Save a snapshot of all hyperparameters Whenever you call .save() on the test-tube experiment it logs all the hyperparameters in current use. Give lightning a test-tube Experiment object to automate this for you. from test-tube import Experiment exp = Experiment(...) Trainer(experiment=exp) Snapshot code for a training run Whenever you call .save() on the test-tube experiment it snapshows all code and pushes to a git tag. Give lightning a test-tube Experiment object to automate this for you. from test-tube import Experiment exp = Experiment(create_git_tag=True) Trainer(experiment=exp) Write logs file to csv every k batches Every k batches, lightning will write the new logs to disk # DEFAULT (ie: save a .csv log file every 100 batches) trainer = Trainer(log_save_interval=100)","title":"Logging"},{"location":"Trainer/Logging/#display-metrics-in-progress-bar","text":"# DEFAULT trainer = Trainer(progress_bar=True)","title":"Display metrics in progress bar"},{"location":"Trainer/Logging/#log-metric-row-every-k-batches","text":"Every k batches lightning will make an entry in the metrics log # DEFAULT (ie: save a .csv log file every 10 batches) trainer = Trainer(add_log_row_interval=10)","title":"Log metric row every k batches"},{"location":"Trainer/Logging/#process-position","text":"When running multiple models on the same machine we want to decide which progress bar to use. Lightning will stack progress bars according to this value. # DEFAULT trainer = Trainer(process_position=0) # if this is the second model on the node, show the second progress bar below trainer = Trainer(process_position=1)","title":"Process position"},{"location":"Trainer/Logging/#save-a-snapshot-of-all-hyperparameters","text":"Whenever you call .save() on the test-tube experiment it logs all the hyperparameters in current use. Give lightning a test-tube Experiment object to automate this for you. from test-tube import Experiment exp = Experiment(...) Trainer(experiment=exp)","title":"Save a snapshot of all hyperparameters"},{"location":"Trainer/Logging/#snapshot-code-for-a-training-run","text":"Whenever you call .save() on the test-tube experiment it snapshows all code and pushes to a git tag. Give lightning a test-tube Experiment object to automate this for you. from test-tube import Experiment exp = Experiment(create_git_tag=True) Trainer(experiment=exp)","title":"Snapshot code for a training run"},{"location":"Trainer/Logging/#write-logs-file-to-csv-every-k-batches","text":"Every k batches, lightning will write the new logs to disk # DEFAULT (ie: save a .csv log file every 100 batches) trainer = Trainer(log_save_interval=100)","title":"Write logs file to csv every k batches"},{"location":"Trainer/SLURM Managed Cluster/","text":"Lightning supports model training on a cluster managed by SLURM in the following cases: Training on single or multi-cpus only. Training on single or multi-gpus on the same node. Coming SOON: Training across multiple nodes. Running grid search on a cluster To use lightning to run a hyperparameter search (grid-search or random-search) on a cluster do 4 things: (1). Define the parameters for the grid search from test_tube import HyperOptArgumentParser # subclass of argparse parser = HyperOptArgumentParser(strategy='random_search') parser.add_argument('--learning_rate', default=0.002, type=float, help='the learning rate') # let's enable optimizing over the number of layers in the network parser.opt_list('--nb_layers', default=2, type=int, tunable=True, options=[2, 4, 8]) hparams = parser.parse_args() (2). Define the cluster options in the SlurmCluster object (over 5 nodes and 8 gpus) from test_tube.hpc import SlurmCluster # hyperparameters is a test-tube hyper params object # see https://williamfalcon.github.io/test-tube/hyperparameter_optimization/HyperOptArgumentParser/ hyperparams = args.parse() # init cluster cluster = SlurmCluster( hyperparam_optimizer=hyperparams, log_path='/path/to/log/results/to', python_cmd='python3' ) # let the cluster know where to email for a change in job status (ie: complete, fail, etc...) cluster.notify_job_status(email='some@email.com', on_done=True, on_fail=True) # set the job options. In this instance, we'll run 20 different models # each with its own set of hyperparameters giving each one 1 GPU (ie: taking up 20 GPUs) cluster.per_experiment_nb_gpus = 8 cluster.per_experiment_nb_nodes = 5 # we'll request 10GB of memory per node cluster.memory_mb_per_node = 10000 # set a walltime of 10 minues cluster.job_time = '10:00' (3). Give trainer the cluster_manager in your main function: from pytorch_lightning import Trainer def train_fx(trial_hparams, cluster_manager, _): # hparams has a specific set of hyperparams my_model = MyLightningModel() # give the trainer the cluster object trainer = Trainer(cluster=cluster_manager) trainer.fit(my_model) (4). Start the grid search # run the models on the cluster cluster.optimize_parallel_cluster_gpu( train_fx, nb_trials=20, job_name='my_grid_search_exp_name', job_display_name='my_exp') That's it! The SlurmCluster object will automatically checkpoint the lightning model and resubmit if it runs into the walltime! Walltime auto-resubmit Lightning automatically resubmits jobs when they reach the walltime. You get this behavior for free if you give lightning a slurm cluster object. def my_main_fx(hparams, slurm_manager, _): trainer = Trainer(cluster=slurm_manager) (See the grid search example above for cluster configuration). With this feature lightning will: automatically checkpoint the model checkpoint the trainer session resubmit a continuation job. load the checkpoint and trainer session in the new model","title":"SLURM Managed Cluster"},{"location":"Trainer/SLURM Managed Cluster/#running-grid-search-on-a-cluster","text":"To use lightning to run a hyperparameter search (grid-search or random-search) on a cluster do 4 things: (1). Define the parameters for the grid search from test_tube import HyperOptArgumentParser # subclass of argparse parser = HyperOptArgumentParser(strategy='random_search') parser.add_argument('--learning_rate', default=0.002, type=float, help='the learning rate') # let's enable optimizing over the number of layers in the network parser.opt_list('--nb_layers', default=2, type=int, tunable=True, options=[2, 4, 8]) hparams = parser.parse_args() (2). Define the cluster options in the SlurmCluster object (over 5 nodes and 8 gpus) from test_tube.hpc import SlurmCluster # hyperparameters is a test-tube hyper params object # see https://williamfalcon.github.io/test-tube/hyperparameter_optimization/HyperOptArgumentParser/ hyperparams = args.parse() # init cluster cluster = SlurmCluster( hyperparam_optimizer=hyperparams, log_path='/path/to/log/results/to', python_cmd='python3' ) # let the cluster know where to email for a change in job status (ie: complete, fail, etc...) cluster.notify_job_status(email='some@email.com', on_done=True, on_fail=True) # set the job options. In this instance, we'll run 20 different models # each with its own set of hyperparameters giving each one 1 GPU (ie: taking up 20 GPUs) cluster.per_experiment_nb_gpus = 8 cluster.per_experiment_nb_nodes = 5 # we'll request 10GB of memory per node cluster.memory_mb_per_node = 10000 # set a walltime of 10 minues cluster.job_time = '10:00' (3). Give trainer the cluster_manager in your main function: from pytorch_lightning import Trainer def train_fx(trial_hparams, cluster_manager, _): # hparams has a specific set of hyperparams my_model = MyLightningModel() # give the trainer the cluster object trainer = Trainer(cluster=cluster_manager) trainer.fit(my_model) (4). Start the grid search # run the models on the cluster cluster.optimize_parallel_cluster_gpu( train_fx, nb_trials=20, job_name='my_grid_search_exp_name', job_display_name='my_exp') That's it! The SlurmCluster object will automatically checkpoint the lightning model and resubmit if it runs into the walltime!","title":"Running grid search on a cluster"},{"location":"Trainer/SLURM Managed Cluster/#walltime-auto-resubmit","text":"Lightning automatically resubmits jobs when they reach the walltime. You get this behavior for free if you give lightning a slurm cluster object. def my_main_fx(hparams, slurm_manager, _): trainer = Trainer(cluster=slurm_manager) (See the grid search example above for cluster configuration). With this feature lightning will: automatically checkpoint the model checkpoint the trainer session resubmit a continuation job. load the checkpoint and trainer session in the new model","title":"Walltime auto-resubmit"},{"location":"Trainer/Training Loop/","text":"The lightning training loop handles everything except the actual computations of your model. To decide what will happen in your training loop, define the training_step function . Below are all the things lightning automates for you in the training loop. Accumulated gradients Accumulated gradients runs K small batches of size N before doing a backwards pass. The effect is a large effective batch size of size KxN. # DEFAULT (ie: no accumulated grads) trainer = Trainer(accumulate_grad_batches=1) Anneal Learning rate Cut the learning rate by 10 at every epoch listed in this list. # DEFAULT (don't anneal) trainer = Trainer(lr_scheduler_milestones=None) # cut LR by 10 at 100, 200, and 300 epochs trainer = Trainer(lr_scheduler_milestones=[100, 200, 300]) Force training for min or max epochs It can be useful to force training for a minimum number of epochs or limit to a max number # DEFAULT trainer = Trainer(min_nb_epochs=1, max_nb_epochs=1000) Force disable early stop Use this to turn off early stopping and run training to the max_epoch # DEFAULT trainer = Trainer(enable_early_stop=True) Gradient Clipping Use this to turn off early stopping and run training to the max_epoch # DEFAULT (ie: don't clip) trainer = Trainer(gradient_clip=0) Inspect gradient norms Looking at grad norms can help you figure out where training might be going wrong. # DEFAULT (-1 doesn't track norms) trainer = Trainer(track_grad_norm=-1) # track the LP norm (P=2 here) trainer = Trainer(track_grad_norm=2) Set how much of the training set to check If you don't want to check 100% of the training set (for debugging or if it's huge), set this flag # DEFAULT trainer = Trainer(train_percent_check=1.0) # check 10% only trainer = Trainer(train_percent_check=0.1)","title":"Training Loop"},{"location":"Trainer/Training Loop/#accumulated-gradients","text":"Accumulated gradients runs K small batches of size N before doing a backwards pass. The effect is a large effective batch size of size KxN. # DEFAULT (ie: no accumulated grads) trainer = Trainer(accumulate_grad_batches=1)","title":"Accumulated gradients"},{"location":"Trainer/Training Loop/#anneal-learning-rate","text":"Cut the learning rate by 10 at every epoch listed in this list. # DEFAULT (don't anneal) trainer = Trainer(lr_scheduler_milestones=None) # cut LR by 10 at 100, 200, and 300 epochs trainer = Trainer(lr_scheduler_milestones=[100, 200, 300])","title":"Anneal Learning rate"},{"location":"Trainer/Training Loop/#force-training-for-min-or-max-epochs","text":"It can be useful to force training for a minimum number of epochs or limit to a max number # DEFAULT trainer = Trainer(min_nb_epochs=1, max_nb_epochs=1000)","title":"Force training for min or max epochs"},{"location":"Trainer/Training Loop/#force-disable-early-stop","text":"Use this to turn off early stopping and run training to the max_epoch # DEFAULT trainer = Trainer(enable_early_stop=True)","title":"Force disable early stop"},{"location":"Trainer/Training Loop/#gradient-clipping","text":"Use this to turn off early stopping and run training to the max_epoch # DEFAULT (ie: don't clip) trainer = Trainer(gradient_clip=0)","title":"Gradient Clipping"},{"location":"Trainer/Training Loop/#inspect-gradient-norms","text":"Looking at grad norms can help you figure out where training might be going wrong. # DEFAULT (-1 doesn't track norms) trainer = Trainer(track_grad_norm=-1) # track the LP norm (P=2 here) trainer = Trainer(track_grad_norm=2)","title":"Inspect gradient norms"},{"location":"Trainer/Training Loop/#set-how-much-of-the-training-set-to-check","text":"If you don't want to check 100% of the training set (for debugging or if it's huge), set this flag # DEFAULT trainer = Trainer(train_percent_check=1.0) # check 10% only trainer = Trainer(train_percent_check=0.1)","title":"Set how much of the training set to check"},{"location":"Trainer/Validation loop/","text":"The lightning validation loop handles everything except the actual computations of your model. To decide what will happen in your validation loop, define the validation_step function . Below are all the things lightning automates for you in the validation loop. Note Lightning will run 5 steps of validation in the beginning of training as a sanity check so you don't have to wait until a full epoch to catch possible validation issues. Check validation every n epochs If you have a small dataset you might want to check validation every n epochs # DEFAULT trainer = Trainer(check_val_every_n_epoch=1) Set how much of the validation set to check If you don't want to check 100% of the validation set (for debugging or if it's huge), set this flag # DEFAULT trainer = Trainer(val_percent_check=1.0) # check 10% only trainer = Trainer(val_percent_check=0.1) Set how much of the test set to check If you don't want to check 100% of the test set (for debugging or if it's huge), set this flag # DEFAULT trainer = Trainer(test_percent_check=1.0) # check 10% only trainer = Trainer(test_percent_check=0.1) Set validation check frequency within 1 training epoch For large datasets it's often desirable to check validation multiple times within a training loop # DEFAULT trainer = Trainer(val_check_interval=0.95) # check every .25 of an epoch trainer = Trainer(val_check_interval=0.25) Set the number of validation sanity steps Lightning runs a few steps of validation in the beginning of training. This avoids crashing in the validation loop sometime deep into a lengthy training loop. # DEFAULT trainer = Trainer(nb_sanity_val_steps=5)","title":"Validation loop"},{"location":"Trainer/Validation loop/#check-validation-every-n-epochs","text":"If you have a small dataset you might want to check validation every n epochs # DEFAULT trainer = Trainer(check_val_every_n_epoch=1)","title":"Check validation every n epochs"},{"location":"Trainer/Validation loop/#set-how-much-of-the-validation-set-to-check","text":"If you don't want to check 100% of the validation set (for debugging or if it's huge), set this flag # DEFAULT trainer = Trainer(val_percent_check=1.0) # check 10% only trainer = Trainer(val_percent_check=0.1)","title":"Set how much of the validation set to check"},{"location":"Trainer/Validation loop/#set-how-much-of-the-test-set-to-check","text":"If you don't want to check 100% of the test set (for debugging or if it's huge), set this flag # DEFAULT trainer = Trainer(test_percent_check=1.0) # check 10% only trainer = Trainer(test_percent_check=0.1)","title":"Set how much of the test set to check"},{"location":"Trainer/Validation loop/#set-validation-check-frequency-within-1-training-epoch","text":"For large datasets it's often desirable to check validation multiple times within a training loop # DEFAULT trainer = Trainer(val_check_interval=0.95) # check every .25 of an epoch trainer = Trainer(val_check_interval=0.25)","title":"Set validation check frequency within 1 training epoch"},{"location":"Trainer/Validation loop/#set-the-number-of-validation-sanity-steps","text":"Lightning runs a few steps of validation in the beginning of training. This avoids crashing in the validation loop sometime deep into a lengthy training loop. # DEFAULT trainer = Trainer(nb_sanity_val_steps=5)","title":"Set the number of validation sanity steps"},{"location":"Trainer/debugging/","text":"These flags are useful to help debug a model. Fast dev run This flag is meant for debugging a full train/val/test loop. It'll activate callbacks, everything but only with 1 training and 1 validation batch. Use this to debug a full run of your program quickly # DEFAULT trainer = Trainer(fast_dev_run=False) Inspect gradient norms Looking at grad norms can help you figure out where training might be going wrong. # DEFAULT (-1 doesn't track norms) trainer = Trainer(track_grad_norm=-1) # track the LP norm (P=2 here) trainer = Trainer(track_grad_norm=2) Make model overfit on subset of data A useful debugging trick is to make your model overfit a tiny fraction of the data. # DEFAULT don't overfit (ie: normal training) trainer = Trainer(overfit_pct=0.0) # overfit on 1% of data trainer = Trainer(overfit_pct=0.01) Print the parameter count by layer By default lightning prints a list of parameters and submodules when it starts training. Print which gradients are nan This option prints a list of tensors with nan gradients. # DEFAULT trainer = Trainer(print_nan_grads=False) Log GPU usage Lightning automatically logs gpu usage to the test tube logs. It'll only do it at the metric logging interval, so it doesn't slow down training.","title":"Debugging"},{"location":"Trainer/debugging/#fast-dev-run","text":"This flag is meant for debugging a full train/val/test loop. It'll activate callbacks, everything but only with 1 training and 1 validation batch. Use this to debug a full run of your program quickly # DEFAULT trainer = Trainer(fast_dev_run=False)","title":"Fast dev run"},{"location":"Trainer/debugging/#inspect-gradient-norms","text":"Looking at grad norms can help you figure out where training might be going wrong. # DEFAULT (-1 doesn't track norms) trainer = Trainer(track_grad_norm=-1) # track the LP norm (P=2 here) trainer = Trainer(track_grad_norm=2)","title":"Inspect gradient norms"},{"location":"Trainer/debugging/#make-model-overfit-on-subset-of-data","text":"A useful debugging trick is to make your model overfit a tiny fraction of the data. # DEFAULT don't overfit (ie: normal training) trainer = Trainer(overfit_pct=0.0) # overfit on 1% of data trainer = Trainer(overfit_pct=0.01)","title":"Make model overfit on subset of data"},{"location":"Trainer/debugging/#print-the-parameter-count-by-layer","text":"By default lightning prints a list of parameters and submodules when it starts training.","title":"Print the parameter count by layer"},{"location":"Trainer/debugging/#print-which-gradients-are-nan","text":"This option prints a list of tensors with nan gradients. # DEFAULT trainer = Trainer(print_nan_grads=False)","title":"Print which gradients are nan"},{"location":"Trainer/debugging/#log-gpu-usage","text":"Lightning automatically logs gpu usage to the test tube logs. It'll only do it at the metric logging interval, so it doesn't slow down training.","title":"Log GPU usage"},{"location":"Trainer/hooks/","text":"","title":"Hooks"},{"location":"examples/Examples/","text":"Template model definition In 99% of cases you want to just copy this template to start a new lightningModule and change the core of what your model is actually trying to do. # get a copy of the module template wget https://github.com/williamFalcon/pytorch-lightning/blob/master/examples/new_project_templates/lightning_module_template.py Trainer Example __main__ function Normally, we want to let the __main__ function start the training. Inside the main we parse training arguments with whatever hyperparameters we want. Your LightningModule will have a chance to add hyperparameters. from test_tube import HyperOptArgumentParser if __name__ == '__main__': # use default args given by lightning root_dir = os.path.split(os.path.dirname(sys.modules['__main__'].__file__))[0] parent_parser = HyperOptArgumentParser(strategy='random_search', add_help=False) add_default_args(parent_parser, root_dir) # allow model to overwrite or extend args parser = ExampleModel.add_model_specific_args(parent_parser) hyperparams = parser.parse_args() # train model main(hyperparams) Main Function The main function is your entry into the program. This is where you init your model, checkpoint directory, and launch the training. The main function should have 3 arguments: - hparams: a configuration of hyperparameters. - slurm_manager: Slurm cluster manager object (can be None) - dict: for you to return any values you want (useful in meta-learning, otherwise set to _) def main(hparams, cluster, results_dict): \"\"\" Main training routine specific for this project :param hparams: :return: \"\"\" # init experiment log_dir = os.path.dirname(os.path.realpath(__file__)) exp = Experiment( name='test_tube_exp', debug=True, save_dir=log_dir, version=0, autosave=False, description='test demo' ) # set the hparams for the experiment exp.argparse(hparams) exp.save() # build model model = MyLightningModule(hparams) # callbacks early_stop = EarlyStopping( monitor=hparams.early_stop_metric, patience=hparams.early_stop_patience, verbose=True, mode=hparams.early_stop_mode ) model_save_path = '{}/{}/{}'.format(hparams.model_save_path, exp.name, exp.version) checkpoint = ModelCheckpoint( filepath=model_save_path, save_function=None, save_best_only=True, verbose=True, monitor=hparams.model_save_monitor_value, mode=hparams.model_save_monitor_mode ) # configure trainer trainer = Trainer( experiment=exp, cluster=cluster, checkpoint_callback=checkpoint, early_stop_callback=early_stop, ) # train model trainer.fit(model) The main function will start training on your main function. If you use the HyperParameterOptimizer in hyper parameter optimization mode, this main function will get one set of hyperparameters. If you use it as a simple argument parser you get the default arguments in the argument parser. So, calling main(hyperparams) runs the model with the default argparse arguments. main(hyperparams) CPU hyperparameter search # run a grid search over 20 hyperparameter combinations. hyperparams.optimize_parallel_cpu( main_local, nb_trials=20, nb_workers=1 ) Hyperparameter search on a single or multiple GPUs # run a grid search over 20 hyperparameter combinations. hyperparams.optimize_parallel_gpu( main_local, nb_trials=20, nb_workers=1, gpus=[0,1,2,3] ) Hyperparameter search on a SLURM HPC cluster def optimize_on_cluster(hyperparams): # enable cluster training cluster = SlurmCluster( hyperparam_optimizer=hyperparams, log_path=hyperparams.tt_save_path, test_tube_exp_name=hyperparams.tt_name ) # email for cluster coms cluster.notify_job_status(email='add_email_here', on_done=True, on_fail=True) # configure cluster cluster.per_experiment_nb_gpus = hyperparams.per_experiment_nb_gpus cluster.job_time = '48:00:00' cluster.gpu_type = '1080ti' cluster.memory_mb_per_node = 48000 # any modules for code to run in env cluster.add_command('source activate pytorch_lightning') # name of exp job_display_name = hyperparams.tt_name.split('_')[0] job_display_name = job_display_name[0:3] # run hopt print('submitting jobs...') cluster.optimize_parallel_cluster_gpu( main, nb_trials=hyperparams.nb_hopt_trials, job_name=job_display_name ) # run cluster hyperparameter search optimize_on_cluster(hyperparams)","title":"Examples"},{"location":"examples/Examples/#template-model-definition","text":"In 99% of cases you want to just copy this template to start a new lightningModule and change the core of what your model is actually trying to do. # get a copy of the module template wget https://github.com/williamFalcon/pytorch-lightning/blob/master/examples/new_project_templates/lightning_module_template.py","title":"Template model definition"},{"location":"examples/Examples/#trainer-example","text":"__main__ function Normally, we want to let the __main__ function start the training. Inside the main we parse training arguments with whatever hyperparameters we want. Your LightningModule will have a chance to add hyperparameters. from test_tube import HyperOptArgumentParser if __name__ == '__main__': # use default args given by lightning root_dir = os.path.split(os.path.dirname(sys.modules['__main__'].__file__))[0] parent_parser = HyperOptArgumentParser(strategy='random_search', add_help=False) add_default_args(parent_parser, root_dir) # allow model to overwrite or extend args parser = ExampleModel.add_model_specific_args(parent_parser) hyperparams = parser.parse_args() # train model main(hyperparams) Main Function The main function is your entry into the program. This is where you init your model, checkpoint directory, and launch the training. The main function should have 3 arguments: - hparams: a configuration of hyperparameters. - slurm_manager: Slurm cluster manager object (can be None) - dict: for you to return any values you want (useful in meta-learning, otherwise set to _) def main(hparams, cluster, results_dict): \"\"\" Main training routine specific for this project :param hparams: :return: \"\"\" # init experiment log_dir = os.path.dirname(os.path.realpath(__file__)) exp = Experiment( name='test_tube_exp', debug=True, save_dir=log_dir, version=0, autosave=False, description='test demo' ) # set the hparams for the experiment exp.argparse(hparams) exp.save() # build model model = MyLightningModule(hparams) # callbacks early_stop = EarlyStopping( monitor=hparams.early_stop_metric, patience=hparams.early_stop_patience, verbose=True, mode=hparams.early_stop_mode ) model_save_path = '{}/{}/{}'.format(hparams.model_save_path, exp.name, exp.version) checkpoint = ModelCheckpoint( filepath=model_save_path, save_function=None, save_best_only=True, verbose=True, monitor=hparams.model_save_monitor_value, mode=hparams.model_save_monitor_mode ) # configure trainer trainer = Trainer( experiment=exp, cluster=cluster, checkpoint_callback=checkpoint, early_stop_callback=early_stop, ) # train model trainer.fit(model) The main function will start training on your main function. If you use the HyperParameterOptimizer in hyper parameter optimization mode, this main function will get one set of hyperparameters. If you use it as a simple argument parser you get the default arguments in the argument parser. So, calling main(hyperparams) runs the model with the default argparse arguments. main(hyperparams)","title":"Trainer Example"},{"location":"examples/Examples/#cpu-hyperparameter-search","text":"# run a grid search over 20 hyperparameter combinations. hyperparams.optimize_parallel_cpu( main_local, nb_trials=20, nb_workers=1 )","title":"CPU hyperparameter search"},{"location":"examples/Examples/#hyperparameter-search-on-a-single-or-multiple-gpus","text":"# run a grid search over 20 hyperparameter combinations. hyperparams.optimize_parallel_gpu( main_local, nb_trials=20, nb_workers=1, gpus=[0,1,2,3] )","title":"Hyperparameter search on a single or multiple GPUs"},{"location":"examples/Examples/#hyperparameter-search-on-a-slurm-hpc-cluster","text":"def optimize_on_cluster(hyperparams): # enable cluster training cluster = SlurmCluster( hyperparam_optimizer=hyperparams, log_path=hyperparams.tt_save_path, test_tube_exp_name=hyperparams.tt_name ) # email for cluster coms cluster.notify_job_status(email='add_email_here', on_done=True, on_fail=True) # configure cluster cluster.per_experiment_nb_gpus = hyperparams.per_experiment_nb_gpus cluster.job_time = '48:00:00' cluster.gpu_type = '1080ti' cluster.memory_mb_per_node = 48000 # any modules for code to run in env cluster.add_command('source activate pytorch_lightning') # name of exp job_display_name = hyperparams.tt_name.split('_')[0] job_display_name = job_display_name[0:3] # run hopt print('submitting jobs...') cluster.optimize_parallel_cluster_gpu( main, nb_trials=hyperparams.nb_hopt_trials, job_name=job_display_name ) # run cluster hyperparameter search optimize_on_cluster(hyperparams)","title":"Hyperparameter search on a SLURM HPC cluster"}]} \ No newline at end of file +{"config":{"lang":["en"],"prebuild_index":false,"separator":"[\\s\\-]+"},"docs":[{"location":"","text":"New project Quick Start To start a new project define these two files. Define a LightningModule Pick a trainer Basic CPU Trainer GPU cluster Trainer Docs shortcuts LightningModule Trainer Quick start examples CPU example Hyperparameter search on single GPU Hyperparameter search on multiple GPUs on same node Hyperparameter search on a SLURM HPC cluster Checkpointing Model saving Model loading Computing cluster (SLURM) Running grid search on a cluster Walltime auto-resubmit Debugging Fast dev run Inspect gradient norms Log GPU usage Make model overfit on subset of data Print the parameter count by layer Pring which gradients are nan Distributed training 16-bit mixed precision Multi-GPU Multi-node Single GPU Self-balancing architecture Experiment Logging Display metrics in progress bar Log arbitrary metrics Log metric row every k batches Process position Save a snapshot of all hyperparameters Snapshot code for a training run Write logs file to csv every k batches Training loop Accumulate gradients Anneal Learning rate Force training for min or max epochs Force disable early stop Gradient Clipping Use multiple optimizers (like GANs) Set how much of the training set to check (1-100%) Validation loop Check validation every n epochs Set how much of the validation set to check Set how much of the test set to check Set validation check frequency within 1 training epoch Set the number of validation sanity steps","title":"Home"},{"location":"#new-project-quick-start","text":"To start a new project define these two files. Define a LightningModule Pick a trainer Basic CPU Trainer GPU cluster Trainer","title":"New project Quick Start"},{"location":"#docs-shortcuts","text":"LightningModule Trainer","title":"Docs shortcuts"},{"location":"#quick-start-examples","text":"CPU example Hyperparameter search on single GPU Hyperparameter search on multiple GPUs on same node Hyperparameter search on a SLURM HPC cluster","title":"Quick start examples"},{"location":"#checkpointing","text":"Model saving Model loading","title":"Checkpointing"},{"location":"#computing-cluster-slurm","text":"Running grid search on a cluster Walltime auto-resubmit","title":"Computing cluster (SLURM)"},{"location":"#debugging","text":"Fast dev run Inspect gradient norms Log GPU usage Make model overfit on subset of data Print the parameter count by layer Pring which gradients are nan","title":"Debugging"},{"location":"#distributed-training","text":"16-bit mixed precision Multi-GPU Multi-node Single GPU Self-balancing architecture","title":"Distributed training"},{"location":"#experiment-logging","text":"Display metrics in progress bar Log arbitrary metrics Log metric row every k batches Process position Save a snapshot of all hyperparameters Snapshot code for a training run Write logs file to csv every k batches","title":"Experiment Logging"},{"location":"#training-loop","text":"Accumulate gradients Anneal Learning rate Force training for min or max epochs Force disable early stop Gradient Clipping Use multiple optimizers (like GANs) Set how much of the training set to check (1-100%)","title":"Training loop"},{"location":"#validation-loop","text":"Check validation every n epochs Set how much of the validation set to check Set how much of the test set to check Set validation check frequency within 1 training epoch Set the number of validation sanity steps","title":"Validation loop"},{"location":"LightningModule/RequiredTrainerInterface/","text":"Lightning Module interface [ Github Code ] A lightning module is a strict superclass of nn.Module, it provides a standard interface for the trainer to interact with the model. The easiest thing to do is copy this template and modify accordingly. Otherwise, to Define a Lightning Module, implement the following methods: Required : training_step validation_step validation_end configure_optimizers get_save_dict load_model_specific tng_dataloader tng_dataloader test_dataloader Optional : update_tng_log_metrics add_model_specific_args training_step def training_step(self, data_batch, batch_nb) In this step you'd normally do the forward pass and calculate the loss for a batch. You can also do fancier things like multiple forward passes or something specific to your model. Params Param description data_batch The output of your dataloader. A tensor, tuple or list batch_nb Integer displaying which batch this is Return Dictionary or OrderedDict key value is required loss tensor scalar Y prog Dict for progress bar display. Must have only tensors N Example def training_step(self, data_batch, batch_nb): x, y, z = data_batch # implement your own out = self.forward(x) loss = self.loss(out, x) output = { 'loss': loss, # required 'prog': {'tng_loss': loss, 'batch_nb': batch_nb} # optional } # return a dict return output validation_step def validation_step(self, data_batch, batch_nb) In this step you'd normally do the forward pass and calculate the loss for a batch. You can also do fancier things like multiple forward passes or something specific to your model. This is most likely the same as your training_step. But unlike training step, the outputs from here will go to validation_end for collation. Params Param description data_batch The output of your dataloader. A tensor, tuple or list batch_nb Integer displaying which batch this is Return Return description optional dict Dict of OrderedDict with metrics to display in progress bar. All keys must be tensors. Y Example def validation_step(self, data_batch, batch_nb): x, y, z = data_batch # implement your own out = self.forward(x) loss = self.loss(out, x) # calculate acc labels_hat = torch.argmax(out, dim=1) val_acc = torch.sum(y == labels_hat).item() / (len(y) * 1.0) # all optional... # return whatever you need for the collation function validation_end output = OrderedDict({ 'val_loss': loss_val, 'val_acc': torch.tensor(val_acc), # everything must be a tensor }) # return an optional dict return output validation_end def validation_end(self, outputs) Called at the end of the validation loop with the output of each validation_step. Params Param description outputs List of outputs you defined in validation_step Return Return description optional dict Dict of OrderedDict with metrics to display in progress bar Y Example def validation_end(self, outputs): \"\"\" Called at the end of validation to aggregate outputs :param outputs: list of individual outputs of each validation step :return: \"\"\" val_loss_mean = 0 val_acc_mean = 0 for output in outputs: val_loss_mean += output['val_loss'] val_acc_mean += output['val_acc'] val_loss_mean /= len(outputs) val_acc_mean /= len(outputs) tqdm_dic = {'val_loss': val_loss_mean.item(), 'val_acc': val_acc_mean.item()} return tqdm_dic configure_optimizers def configure_optimizers(self) Set up as many optimizers as you need. Normally you'd need one. But in the case of GANs or something more esoteric you might have multiple. Lightning will call .backward() and .step() on each one. If you use 16 bit precision it will also handle that. Return List - List of optimizers Example # most cases def configure_optimizers(self): opt = Adam(lr=0.01) return [opt] # gan example def configure_optimizers(self): generator_opt = Adam(lr=0.01) disriminator_opt = Adam(lr=0.02) return [generator_opt, disriminator_opt] get_save_dict def get_save_dict(self) Called by lightning to checkpoint your model. Lightning saves current epoch, current batch nb, etc... All you have to return is what specifically about your lightning model you want to checkpoint. Return Dictionary - No required keys. Most of the time as described in this example. Example def get_save_dict(self): # 99% of use cases this is all you need to return checkpoint = {'state_dict': self.state_dict()} return checkpoint load_model_specific def load_model_specific(self, checkpoint) Called by lightning to restore your model. This is your chance to restore your model using the keys you added in get_save_dict. Lightning will automatically restore current epoch, batch nb, etc. Return Nothing Example def load_model_specific(self, checkpoint): # you defined 'state_dict' in get_save_dict() self.load_state_dict(checkpoint['state_dict']) tng_dataloader @property def tng_dataloader(self) Called by lightning during training loop. Define it as a property. Return Pytorch DataLoader Example @property def tng_dataloader(self): if self._tng_dataloader is None: try: transform = transforms.Compose([transforms.ToTensor(), transforms.Normalize((0.5,), (1.0,))]) dataset = MNIST(root='/path/to/mnist/', train=True, transform=transform, download=True) loader = torch.utils.data.DataLoader( dataset=dataset, batch_size=self.hparams.batch_size, shuffle=True ) self._tng_dataloader = loader except Exception as e: raise e return self._tng_dataloader val_dataloader @property def tng_dataloader(self) Called by lightning during validation loop. Define it as a property. Return Pytorch DataLoader Example @property def val_dataloader(self): if self._val_dataloader is None: try: transform = transforms.Compose([transforms.ToTensor(), transforms.Normalize((0.5,), (1.0,))]) dataset = MNIST(root='/path/to/mnist/', train=False, transform=transform, download=True) loader = torch.utils.data.DataLoader( dataset=dataset, batch_size=self.hparams.batch_size, shuffle=True ) self._val_dataloader = loader except Exception as e: raise e return self._val_dataloader test_dataloader @property def test_dataloader(self) Called by lightning during test loop. Define it as a property. Return Pytorch DataLoader Example @property def test_dataloader(self): if self._test_dataloader is None: try: transform = transforms.Compose([transforms.ToTensor(), transforms.Normalize((0.5,), (1.0,))]) dataset = MNIST(root='/path/to/mnist/', train=False, transform=transform, download=True) loader = torch.utils.data.DataLoader( dataset=dataset, batch_size=self.hparams.batch_size, shuffle=True ) self._test_dataloader = loader except Exception as e: raise e return self._test_dataloader update_tng_log_metrics def update_tng_log_metrics(self, logs) Called by lightning right before it logs metrics for this batch. This is a chance to ammend or add to the metrics about to be logged. Return Dict Example def update_tng_log_metrics(self, logs): # modify or add to logs return logs add_model_specific_args @staticmethod def add_model_specific_args(parent_parser, root_dir) Lightning has a list of default argparse commands. This method is your chance to add or modify commands specific to your model. The hyperparameter argument parser is available anywhere in your model by calling self.hparams. Return An argument parser Example @staticmethod def add_model_specific_args(parent_parser, root_dir): parser = HyperOptArgumentParser(strategy=parent_parser.strategy, parents=[parent_parser]) # param overwrites # parser.set_defaults(gradient_clip=5.0) # network params parser.opt_list('--drop_prob', default=0.2, options=[0.2, 0.5], type=float, tunable=False) parser.add_argument('--in_features', default=28*28) parser.add_argument('--out_features', default=10) parser.add_argument('--hidden_dim', default=50000) # use 500 for CPU, 50000 for GPU to see speed difference # data parser.add_argument('--data_root', default=os.path.join(root_dir, 'mnist'), type=str) # training params (opt) parser.opt_list('--learning_rate', default=0.001, type=float, options=[0.0001, 0.0005, 0.001, 0.005], tunable=False) parser.opt_list('--batch_size', default=256, type=int, options=[32, 64, 128, 256], tunable=False) parser.opt_list('--optimizer_name', default='adam', type=str, options=['adam'], tunable=False) return parser","title":"Lightning Module interface"},{"location":"LightningModule/RequiredTrainerInterface/#lightning-module-interface","text":"[ Github Code ] A lightning module is a strict superclass of nn.Module, it provides a standard interface for the trainer to interact with the model. The easiest thing to do is copy this template and modify accordingly. Otherwise, to Define a Lightning Module, implement the following methods: Required : training_step validation_step validation_end configure_optimizers get_save_dict load_model_specific tng_dataloader tng_dataloader test_dataloader Optional : update_tng_log_metrics add_model_specific_args","title":"Lightning Module interface"},{"location":"LightningModule/RequiredTrainerInterface/#training_step","text":"def training_step(self, data_batch, batch_nb) In this step you'd normally do the forward pass and calculate the loss for a batch. You can also do fancier things like multiple forward passes or something specific to your model. Params Param description data_batch The output of your dataloader. A tensor, tuple or list batch_nb Integer displaying which batch this is Return Dictionary or OrderedDict key value is required loss tensor scalar Y prog Dict for progress bar display. Must have only tensors N Example def training_step(self, data_batch, batch_nb): x, y, z = data_batch # implement your own out = self.forward(x) loss = self.loss(out, x) output = { 'loss': loss, # required 'prog': {'tng_loss': loss, 'batch_nb': batch_nb} # optional } # return a dict return output","title":"training_step"},{"location":"LightningModule/RequiredTrainerInterface/#validation_step","text":"def validation_step(self, data_batch, batch_nb) In this step you'd normally do the forward pass and calculate the loss for a batch. You can also do fancier things like multiple forward passes or something specific to your model. This is most likely the same as your training_step. But unlike training step, the outputs from here will go to validation_end for collation. Params Param description data_batch The output of your dataloader. A tensor, tuple or list batch_nb Integer displaying which batch this is Return Return description optional dict Dict of OrderedDict with metrics to display in progress bar. All keys must be tensors. Y Example def validation_step(self, data_batch, batch_nb): x, y, z = data_batch # implement your own out = self.forward(x) loss = self.loss(out, x) # calculate acc labels_hat = torch.argmax(out, dim=1) val_acc = torch.sum(y == labels_hat).item() / (len(y) * 1.0) # all optional... # return whatever you need for the collation function validation_end output = OrderedDict({ 'val_loss': loss_val, 'val_acc': torch.tensor(val_acc), # everything must be a tensor }) # return an optional dict return output","title":"validation_step"},{"location":"LightningModule/RequiredTrainerInterface/#validation_end","text":"def validation_end(self, outputs) Called at the end of the validation loop with the output of each validation_step. Params Param description outputs List of outputs you defined in validation_step Return Return description optional dict Dict of OrderedDict with metrics to display in progress bar Y Example def validation_end(self, outputs): \"\"\" Called at the end of validation to aggregate outputs :param outputs: list of individual outputs of each validation step :return: \"\"\" val_loss_mean = 0 val_acc_mean = 0 for output in outputs: val_loss_mean += output['val_loss'] val_acc_mean += output['val_acc'] val_loss_mean /= len(outputs) val_acc_mean /= len(outputs) tqdm_dic = {'val_loss': val_loss_mean.item(), 'val_acc': val_acc_mean.item()} return tqdm_dic","title":"validation_end"},{"location":"LightningModule/RequiredTrainerInterface/#configure_optimizers","text":"def configure_optimizers(self) Set up as many optimizers as you need. Normally you'd need one. But in the case of GANs or something more esoteric you might have multiple. Lightning will call .backward() and .step() on each one. If you use 16 bit precision it will also handle that.","title":"configure_optimizers"},{"location":"LightningModule/RequiredTrainerInterface/#return","text":"List - List of optimizers Example # most cases def configure_optimizers(self): opt = Adam(lr=0.01) return [opt] # gan example def configure_optimizers(self): generator_opt = Adam(lr=0.01) disriminator_opt = Adam(lr=0.02) return [generator_opt, disriminator_opt]","title":"Return"},{"location":"LightningModule/RequiredTrainerInterface/#get_save_dict","text":"def get_save_dict(self) Called by lightning to checkpoint your model. Lightning saves current epoch, current batch nb, etc... All you have to return is what specifically about your lightning model you want to checkpoint.","title":"get_save_dict"},{"location":"LightningModule/RequiredTrainerInterface/#return_1","text":"Dictionary - No required keys. Most of the time as described in this example. Example def get_save_dict(self): # 99% of use cases this is all you need to return checkpoint = {'state_dict': self.state_dict()} return checkpoint","title":"Return"},{"location":"LightningModule/RequiredTrainerInterface/#load_model_specific","text":"def load_model_specific(self, checkpoint) Called by lightning to restore your model. This is your chance to restore your model using the keys you added in get_save_dict. Lightning will automatically restore current epoch, batch nb, etc.","title":"load_model_specific"},{"location":"LightningModule/RequiredTrainerInterface/#return_2","text":"Nothing Example def load_model_specific(self, checkpoint): # you defined 'state_dict' in get_save_dict() self.load_state_dict(checkpoint['state_dict'])","title":"Return"},{"location":"LightningModule/RequiredTrainerInterface/#tng_dataloader","text":"@property def tng_dataloader(self) Called by lightning during training loop. Define it as a property.","title":"tng_dataloader"},{"location":"LightningModule/RequiredTrainerInterface/#return_3","text":"Pytorch DataLoader Example @property def tng_dataloader(self): if self._tng_dataloader is None: try: transform = transforms.Compose([transforms.ToTensor(), transforms.Normalize((0.5,), (1.0,))]) dataset = MNIST(root='/path/to/mnist/', train=True, transform=transform, download=True) loader = torch.utils.data.DataLoader( dataset=dataset, batch_size=self.hparams.batch_size, shuffle=True ) self._tng_dataloader = loader except Exception as e: raise e return self._tng_dataloader","title":"Return"},{"location":"LightningModule/RequiredTrainerInterface/#val_dataloader","text":"@property def tng_dataloader(self) Called by lightning during validation loop. Define it as a property.","title":"val_dataloader"},{"location":"LightningModule/RequiredTrainerInterface/#return_4","text":"Pytorch DataLoader Example @property def val_dataloader(self): if self._val_dataloader is None: try: transform = transforms.Compose([transforms.ToTensor(), transforms.Normalize((0.5,), (1.0,))]) dataset = MNIST(root='/path/to/mnist/', train=False, transform=transform, download=True) loader = torch.utils.data.DataLoader( dataset=dataset, batch_size=self.hparams.batch_size, shuffle=True ) self._val_dataloader = loader except Exception as e: raise e return self._val_dataloader","title":"Return"},{"location":"LightningModule/RequiredTrainerInterface/#test_dataloader","text":"@property def test_dataloader(self) Called by lightning during test loop. Define it as a property.","title":"test_dataloader"},{"location":"LightningModule/RequiredTrainerInterface/#return_5","text":"Pytorch DataLoader Example @property def test_dataloader(self): if self._test_dataloader is None: try: transform = transforms.Compose([transforms.ToTensor(), transforms.Normalize((0.5,), (1.0,))]) dataset = MNIST(root='/path/to/mnist/', train=False, transform=transform, download=True) loader = torch.utils.data.DataLoader( dataset=dataset, batch_size=self.hparams.batch_size, shuffle=True ) self._test_dataloader = loader except Exception as e: raise e return self._test_dataloader","title":"Return"},{"location":"LightningModule/RequiredTrainerInterface/#update_tng_log_metrics","text":"def update_tng_log_metrics(self, logs) Called by lightning right before it logs metrics for this batch. This is a chance to ammend or add to the metrics about to be logged.","title":"update_tng_log_metrics"},{"location":"LightningModule/RequiredTrainerInterface/#return_6","text":"Dict Example def update_tng_log_metrics(self, logs): # modify or add to logs return logs","title":"Return"},{"location":"LightningModule/RequiredTrainerInterface/#add_model_specific_args","text":"@staticmethod def add_model_specific_args(parent_parser, root_dir) Lightning has a list of default argparse commands. This method is your chance to add or modify commands specific to your model. The hyperparameter argument parser is available anywhere in your model by calling self.hparams.","title":"add_model_specific_args"},{"location":"LightningModule/RequiredTrainerInterface/#return_7","text":"An argument parser Example @staticmethod def add_model_specific_args(parent_parser, root_dir): parser = HyperOptArgumentParser(strategy=parent_parser.strategy, parents=[parent_parser]) # param overwrites # parser.set_defaults(gradient_clip=5.0) # network params parser.opt_list('--drop_prob', default=0.2, options=[0.2, 0.5], type=float, tunable=False) parser.add_argument('--in_features', default=28*28) parser.add_argument('--out_features', default=10) parser.add_argument('--hidden_dim', default=50000) # use 500 for CPU, 50000 for GPU to see speed difference # data parser.add_argument('--data_root', default=os.path.join(root_dir, 'mnist'), type=str) # training params (opt) parser.opt_list('--learning_rate', default=0.001, type=float, options=[0.0001, 0.0005, 0.001, 0.005], tunable=False) parser.opt_list('--batch_size', default=256, type=int, options=[32, 64, 128, 256], tunable=False) parser.opt_list('--optimizer_name', default='adam', type=str, options=['adam'], tunable=False) return parser","title":"Return"},{"location":"LightningModule/methods/","text":"Lightning modules are strict superclasses of torch.nn.Module. A LightningModule offers the following in addition to that API. freeze Freeze all params for inference model = MyLightningModule(...) model.freeze() load_from_metrics This is the easiest/fastest way which uses the meta_tags.csv file from test-tube to rebuild the model. The meta_tags.csv file can be found in the test-tube experiment save_dir. pretrained_model = MyLightningModule.load_from_metrics( weights_path='/path/to/pytorch_checkpoint.ckpt', tags_csv='/path/to/test_tube/experiment/version/meta_tags.csv', on_gpu=True, map_location=None ) # predict pretrained_model.freeze() y_hat = pretrained_model(x) Params Param description weights_path Path to a pytorch checkpoint tags_csv Path to meta_tags.csv file generated by the test-tube Experiment on_gpu if True, puts model on GPU. Make sure to use transforms option if model devices have changed map_location A dictionary mapping saved weight GPU devices to new GPU devices Returns LightningModule - The pretrained LightningModule unfreeze Unfreeze all params for inference model = MyLightningModule(...) model.unfreeze()","title":"Methods"},{"location":"LightningModule/methods/#freeze","text":"Freeze all params for inference model = MyLightningModule(...) model.freeze()","title":"freeze"},{"location":"LightningModule/methods/#load_from_metrics","text":"This is the easiest/fastest way which uses the meta_tags.csv file from test-tube to rebuild the model. The meta_tags.csv file can be found in the test-tube experiment save_dir. pretrained_model = MyLightningModule.load_from_metrics( weights_path='/path/to/pytorch_checkpoint.ckpt', tags_csv='/path/to/test_tube/experiment/version/meta_tags.csv', on_gpu=True, map_location=None ) # predict pretrained_model.freeze() y_hat = pretrained_model(x) Params Param description weights_path Path to a pytorch checkpoint tags_csv Path to meta_tags.csv file generated by the test-tube Experiment on_gpu if True, puts model on GPU. Make sure to use transforms option if model devices have changed map_location A dictionary mapping saved weight GPU devices to new GPU devices Returns LightningModule - The pretrained LightningModule","title":"load_from_metrics"},{"location":"LightningModule/methods/#unfreeze","text":"Unfreeze all params for inference model = MyLightningModule(...) model.unfreeze()","title":"unfreeze"},{"location":"LightningModule/properties/","text":"A LightningModule has the following properties which you can access at any time current_epoch The current epoch dtype Current dtype experiment An instance of test-tube Experiment which you can use to log anything for tensorboarX. self.experiment.add_embedding(...) self.experiment.log({'val_loss': 0.9}) self.experiment.add_scalars(...) global_step Total training batches seen across all epochs gradient_clip The current gradient clip value on_gpu True if your model is currently running on GPUs. Useful to set flags around the LightningModule for different CPU vs GPU behavior. trainer Last resort access to any state the trainer has. Changing certain properties here could affect your training run. self.trainer.optimizers self.trainer.current_epoch ...","title":"Properties"},{"location":"LightningModule/properties/#current_epoch","text":"The current epoch","title":"current_epoch"},{"location":"LightningModule/properties/#dtype","text":"Current dtype","title":"dtype"},{"location":"LightningModule/properties/#experiment","text":"An instance of test-tube Experiment which you can use to log anything for tensorboarX. self.experiment.add_embedding(...) self.experiment.log({'val_loss': 0.9}) self.experiment.add_scalars(...)","title":"experiment"},{"location":"LightningModule/properties/#global_step","text":"Total training batches seen across all epochs","title":"global_step"},{"location":"LightningModule/properties/#gradient_clip","text":"The current gradient clip value","title":"gradient_clip"},{"location":"LightningModule/properties/#on_gpu","text":"True if your model is currently running on GPUs. Useful to set flags around the LightningModule for different CPU vs GPU behavior.","title":"on_gpu"},{"location":"LightningModule/properties/#trainer","text":"Last resort access to any state the trainer has. Changing certain properties here could affect your training run. self.trainer.optimizers self.trainer.current_epoch ...","title":"trainer"},{"location":"Trainer/","text":"Trainer [ Github Code ] The lightning trainer abstracts best practices for running a training, val, test routine. It calls parts of your model when it wants to hand over full control and otherwise makes training assumptions which are now standard practice in AI research. This is the basic use of the trainer: from pytorch_lightning import Trainer model = LightningTemplate() trainer = Trainer() trainer.fit(model) But of course the fun is in all the advanced things it can do: Checkpointing Model saving Model loading Computing cluster (SLURM) Running grid search on a cluster Walltime auto-resubmit Debugging Fast dev run Inspect gradient norms Log GPU usage Make model overfit on subset of data Print the parameter count by layer Pring which gradients are nan Distributed training 16-bit mixed precision Multi-GPU Multi-node Single GPU Self-balancing architecture Experiment Logging Display metrics in progress bar Log arbitrary metrics Log metric row every k batches Process position Save a snapshot of all hyperparameters Snapshot code for a training run Write logs file to csv every k batches Training loop Accumulate gradients Anneal Learning rate Force training for min or max epochs Force disable early stop Use multiple optimizers (like GANs) Set how much of the training set to check (1-100%) Validation loop Check validation every n epochs Set how much of the validation set to check Set how much of the test set to check Set validation check frequency within 1 training epoch Set the number of validation sanity steps","title":"Trainer"},{"location":"Trainer/#trainer","text":"[ Github Code ] The lightning trainer abstracts best practices for running a training, val, test routine. It calls parts of your model when it wants to hand over full control and otherwise makes training assumptions which are now standard practice in AI research. This is the basic use of the trainer: from pytorch_lightning import Trainer model = LightningTemplate() trainer = Trainer() trainer.fit(model) But of course the fun is in all the advanced things it can do: Checkpointing Model saving Model loading Computing cluster (SLURM) Running grid search on a cluster Walltime auto-resubmit Debugging Fast dev run Inspect gradient norms Log GPU usage Make model overfit on subset of data Print the parameter count by layer Pring which gradients are nan Distributed training 16-bit mixed precision Multi-GPU Multi-node Single GPU Self-balancing architecture Experiment Logging Display metrics in progress bar Log arbitrary metrics Log metric row every k batches Process position Save a snapshot of all hyperparameters Snapshot code for a training run Write logs file to csv every k batches Training loop Accumulate gradients Anneal Learning rate Force training for min or max epochs Force disable early stop Use multiple optimizers (like GANs) Set how much of the training set to check (1-100%) Validation loop Check validation every n epochs Set how much of the validation set to check Set how much of the test set to check Set validation check frequency within 1 training epoch Set the number of validation sanity steps","title":"Trainer"},{"location":"Trainer/Checkpointing/","text":"Lightning can automate saving and loading checkpoints. Model saving To enable checkpointing, define the checkpoint callback and give it to the trainer. from pytorch_lightning.utils.pt_callbacks import ModelCheckpoint checkpoint_callback = ModelCheckpoint( filepath='/path/to/store/weights.ckpt', save_best_only=True, verbose=True, monitor='val_loss', mode='min' ) trainer = Trainer(checkpoint_callback=checkpoint_callback)","title":"Checkpointing"},{"location":"Trainer/Checkpointing/#model-saving","text":"To enable checkpointing, define the checkpoint callback and give it to the trainer. from pytorch_lightning.utils.pt_callbacks import ModelCheckpoint checkpoint_callback = ModelCheckpoint( filepath='/path/to/store/weights.ckpt', save_best_only=True, verbose=True, monitor='val_loss', mode='min' ) trainer = Trainer(checkpoint_callback=checkpoint_callback)","title":"Model saving"},{"location":"Trainer/Distributed training/","text":"Lightning makes multi-gpu training and 16 bit training trivial. Note: None of the flags below require changing anything about your lightningModel definition. 16-bit mixed precision 16 bit precision can cut your memory footprint by half. If using volta architecture GPUs it can give a dramatic training speed-up as well. First, install apex (if install fails, look here ): $ git clone https://github.com/NVIDIA/apex $ cd apex $ pip install -v --no-cache-dir --global-option=\"--cpp_ext\" --global-option=\"--cuda_ext\" ./ then set this use_amp to True. # DEFAULT trainer = Trainer(amp_level='O2', use_amp=False) Single-gpu Make sure you're on a GPU machine. # set these flags os.environ[\"CUDA_DEVICE_ORDER\"] = \"PCI_BUS_ID\" os.environ[\"CUDA_VISIBLE_DEVICES\"] = \"0\" # DEFAULT trainer = Trainer(gpus=[0]) multi-gpu Make sure you're on a GPU machine. You can set as many GPUs as you want. In this setting, the model will run on all 8 GPUs at once using DataParallel under the hood. # set these flags os.environ[\"CUDA_DEVICE_ORDER\"] = \"PCI_BUS_ID\" os.environ[\"CUDA_VISIBLE_DEVICES\"] = \"0,1,2,3,4,5,6,7\" # DEFAULT trainer = Trainer(gpus=[0,1,2,3,4,5,6,7]) Multi-node COMING SOON. Self-balancing architecture Here lightning distributes parts of your module across available GPUs to optimize for speed and memory. COMING SOON.","title":"Distributed training"},{"location":"Trainer/Distributed training/#16-bit-mixed-precision","text":"16 bit precision can cut your memory footprint by half. If using volta architecture GPUs it can give a dramatic training speed-up as well. First, install apex (if install fails, look here ): $ git clone https://github.com/NVIDIA/apex $ cd apex $ pip install -v --no-cache-dir --global-option=\"--cpp_ext\" --global-option=\"--cuda_ext\" ./ then set this use_amp to True. # DEFAULT trainer = Trainer(amp_level='O2', use_amp=False)","title":"16-bit mixed precision"},{"location":"Trainer/Distributed training/#single-gpu","text":"Make sure you're on a GPU machine. # set these flags os.environ[\"CUDA_DEVICE_ORDER\"] = \"PCI_BUS_ID\" os.environ[\"CUDA_VISIBLE_DEVICES\"] = \"0\" # DEFAULT trainer = Trainer(gpus=[0])","title":"Single-gpu"},{"location":"Trainer/Distributed training/#multi-gpu","text":"Make sure you're on a GPU machine. You can set as many GPUs as you want. In this setting, the model will run on all 8 GPUs at once using DataParallel under the hood. # set these flags os.environ[\"CUDA_DEVICE_ORDER\"] = \"PCI_BUS_ID\" os.environ[\"CUDA_VISIBLE_DEVICES\"] = \"0,1,2,3,4,5,6,7\" # DEFAULT trainer = Trainer(gpus=[0,1,2,3,4,5,6,7])","title":"multi-gpu"},{"location":"Trainer/Distributed training/#multi-node","text":"COMING SOON.","title":"Multi-node"},{"location":"Trainer/Distributed training/#self-balancing-architecture","text":"Here lightning distributes parts of your module across available GPUs to optimize for speed and memory. COMING SOON.","title":"Self-balancing architecture"},{"location":"Trainer/Logging/","text":"Lighting offers a few options for logging information about model, gpu usage, etc (via test-tube). It also offers printing options for training monitoring. Display metrics in progress bar # DEFAULT trainer = Trainer(progress_bar=True) Log metric row every k batches Every k batches lightning will make an entry in the metrics log # DEFAULT (ie: save a .csv log file every 10 batches) trainer = Trainer(add_log_row_interval=10) Process position When running multiple models on the same machine we want to decide which progress bar to use. Lightning will stack progress bars according to this value. # DEFAULT trainer = Trainer(process_position=0) # if this is the second model on the node, show the second progress bar below trainer = Trainer(process_position=1) Save a snapshot of all hyperparameters Whenever you call .save() on the test-tube experiment it logs all the hyperparameters in current use. Give lightning a test-tube Experiment object to automate this for you. from test-tube import Experiment exp = Experiment(...) Trainer(experiment=exp) Snapshot code for a training run Whenever you call .save() on the test-tube experiment it snapshows all code and pushes to a git tag. Give lightning a test-tube Experiment object to automate this for you. from test-tube import Experiment exp = Experiment(create_git_tag=True) Trainer(experiment=exp) Write logs file to csv every k batches Every k batches, lightning will write the new logs to disk # DEFAULT (ie: save a .csv log file every 100 batches) trainer = Trainer(log_save_interval=100)","title":"Logging"},{"location":"Trainer/Logging/#display-metrics-in-progress-bar","text":"# DEFAULT trainer = Trainer(progress_bar=True)","title":"Display metrics in progress bar"},{"location":"Trainer/Logging/#log-metric-row-every-k-batches","text":"Every k batches lightning will make an entry in the metrics log # DEFAULT (ie: save a .csv log file every 10 batches) trainer = Trainer(add_log_row_interval=10)","title":"Log metric row every k batches"},{"location":"Trainer/Logging/#process-position","text":"When running multiple models on the same machine we want to decide which progress bar to use. Lightning will stack progress bars according to this value. # DEFAULT trainer = Trainer(process_position=0) # if this is the second model on the node, show the second progress bar below trainer = Trainer(process_position=1)","title":"Process position"},{"location":"Trainer/Logging/#save-a-snapshot-of-all-hyperparameters","text":"Whenever you call .save() on the test-tube experiment it logs all the hyperparameters in current use. Give lightning a test-tube Experiment object to automate this for you. from test-tube import Experiment exp = Experiment(...) Trainer(experiment=exp)","title":"Save a snapshot of all hyperparameters"},{"location":"Trainer/Logging/#snapshot-code-for-a-training-run","text":"Whenever you call .save() on the test-tube experiment it snapshows all code and pushes to a git tag. Give lightning a test-tube Experiment object to automate this for you. from test-tube import Experiment exp = Experiment(create_git_tag=True) Trainer(experiment=exp)","title":"Snapshot code for a training run"},{"location":"Trainer/Logging/#write-logs-file-to-csv-every-k-batches","text":"Every k batches, lightning will write the new logs to disk # DEFAULT (ie: save a .csv log file every 100 batches) trainer = Trainer(log_save_interval=100)","title":"Write logs file to csv every k batches"},{"location":"Trainer/SLURM Managed Cluster/","text":"Lightning supports model training on a cluster managed by SLURM in the following cases: Training on single or multi-cpus only. Training on single or multi-gpus on the same node. Coming SOON: Training across multiple nodes. Running grid search on a cluster To use lightning to run a hyperparameter search (grid-search or random-search) on a cluster do 4 things: (1). Define the parameters for the grid search from test_tube import HyperOptArgumentParser # subclass of argparse parser = HyperOptArgumentParser(strategy='random_search') parser.add_argument('--learning_rate', default=0.002, type=float, help='the learning rate') # let's enable optimizing over the number of layers in the network parser.opt_list('--nb_layers', default=2, type=int, tunable=True, options=[2, 4, 8]) hparams = parser.parse_args() (2). Define the cluster options in the SlurmCluster object (over 5 nodes and 8 gpus) from test_tube.hpc import SlurmCluster # hyperparameters is a test-tube hyper params object # see https://williamfalcon.github.io/test-tube/hyperparameter_optimization/HyperOptArgumentParser/ hyperparams = args.parse() # init cluster cluster = SlurmCluster( hyperparam_optimizer=hyperparams, log_path='/path/to/log/results/to', python_cmd='python3' ) # let the cluster know where to email for a change in job status (ie: complete, fail, etc...) cluster.notify_job_status(email='some@email.com', on_done=True, on_fail=True) # set the job options. In this instance, we'll run 20 different models # each with its own set of hyperparameters giving each one 1 GPU (ie: taking up 20 GPUs) cluster.per_experiment_nb_gpus = 8 cluster.per_experiment_nb_nodes = 5 # we'll request 10GB of memory per node cluster.memory_mb_per_node = 10000 # set a walltime of 10 minues cluster.job_time = '10:00' (3). Give trainer the cluster_manager in your main function: from pytorch_lightning import Trainer def train_fx(trial_hparams, cluster_manager, _): # hparams has a specific set of hyperparams my_model = MyLightningModel() # give the trainer the cluster object trainer = Trainer(cluster=cluster_manager) trainer.fit(my_model) (4). Start the grid search # run the models on the cluster cluster.optimize_parallel_cluster_gpu( train_fx, nb_trials=20, job_name='my_grid_search_exp_name', job_display_name='my_exp') That's it! The SlurmCluster object will automatically checkpoint the lightning model and resubmit if it runs into the walltime! Walltime auto-resubmit Lightning automatically resubmits jobs when they reach the walltime. You get this behavior for free if you give lightning a slurm cluster object. def my_main_fx(hparams, slurm_manager, _): trainer = Trainer(cluster=slurm_manager) (See the grid search example above for cluster configuration). With this feature lightning will: automatically checkpoint the model checkpoint the trainer session resubmit a continuation job. load the checkpoint and trainer session in the new model","title":"SLURM Managed Cluster"},{"location":"Trainer/SLURM Managed Cluster/#running-grid-search-on-a-cluster","text":"To use lightning to run a hyperparameter search (grid-search or random-search) on a cluster do 4 things: (1). Define the parameters for the grid search from test_tube import HyperOptArgumentParser # subclass of argparse parser = HyperOptArgumentParser(strategy='random_search') parser.add_argument('--learning_rate', default=0.002, type=float, help='the learning rate') # let's enable optimizing over the number of layers in the network parser.opt_list('--nb_layers', default=2, type=int, tunable=True, options=[2, 4, 8]) hparams = parser.parse_args() (2). Define the cluster options in the SlurmCluster object (over 5 nodes and 8 gpus) from test_tube.hpc import SlurmCluster # hyperparameters is a test-tube hyper params object # see https://williamfalcon.github.io/test-tube/hyperparameter_optimization/HyperOptArgumentParser/ hyperparams = args.parse() # init cluster cluster = SlurmCluster( hyperparam_optimizer=hyperparams, log_path='/path/to/log/results/to', python_cmd='python3' ) # let the cluster know where to email for a change in job status (ie: complete, fail, etc...) cluster.notify_job_status(email='some@email.com', on_done=True, on_fail=True) # set the job options. In this instance, we'll run 20 different models # each with its own set of hyperparameters giving each one 1 GPU (ie: taking up 20 GPUs) cluster.per_experiment_nb_gpus = 8 cluster.per_experiment_nb_nodes = 5 # we'll request 10GB of memory per node cluster.memory_mb_per_node = 10000 # set a walltime of 10 minues cluster.job_time = '10:00' (3). Give trainer the cluster_manager in your main function: from pytorch_lightning import Trainer def train_fx(trial_hparams, cluster_manager, _): # hparams has a specific set of hyperparams my_model = MyLightningModel() # give the trainer the cluster object trainer = Trainer(cluster=cluster_manager) trainer.fit(my_model) (4). Start the grid search # run the models on the cluster cluster.optimize_parallel_cluster_gpu( train_fx, nb_trials=20, job_name='my_grid_search_exp_name', job_display_name='my_exp') That's it! The SlurmCluster object will automatically checkpoint the lightning model and resubmit if it runs into the walltime!","title":"Running grid search on a cluster"},{"location":"Trainer/SLURM Managed Cluster/#walltime-auto-resubmit","text":"Lightning automatically resubmits jobs when they reach the walltime. You get this behavior for free if you give lightning a slurm cluster object. def my_main_fx(hparams, slurm_manager, _): trainer = Trainer(cluster=slurm_manager) (See the grid search example above for cluster configuration). With this feature lightning will: automatically checkpoint the model checkpoint the trainer session resubmit a continuation job. load the checkpoint and trainer session in the new model","title":"Walltime auto-resubmit"},{"location":"Trainer/Training Loop/","text":"The lightning training loop handles everything except the actual computations of your model. To decide what will happen in your training loop, define the training_step function . Below are all the things lightning automates for you in the training loop. Accumulated gradients Accumulated gradients runs K small batches of size N before doing a backwards pass. The effect is a large effective batch size of size KxN. # DEFAULT (ie: no accumulated grads) trainer = Trainer(accumulate_grad_batches=1) Anneal Learning rate Cut the learning rate by 10 at every epoch listed in this list. # DEFAULT (don't anneal) trainer = Trainer(lr_scheduler_milestones=None) # cut LR by 10 at 100, 200, and 300 epochs trainer = Trainer(lr_scheduler_milestones='100, 200, 300') Force training for min or max epochs It can be useful to force training for a minimum number of epochs or limit to a max number # DEFAULT trainer = Trainer(min_nb_epochs=1, max_nb_epochs=1000) Force disable early stop Use this to turn off early stopping and run training to the max_epoch # DEFAULT trainer = Trainer(enable_early_stop=True) Gradient Clipping Use this to turn off early stopping and run training to the max_epoch # DEFAULT (ie: don't clip) trainer = Trainer(gradient_clip=0) Inspect gradient norms Looking at grad norms can help you figure out where training might be going wrong. # DEFAULT (-1 doesn't track norms) trainer = Trainer(track_grad_norm=-1) # track the LP norm (P=2 here) trainer = Trainer(track_grad_norm=2) Set how much of the training set to check If you don't want to check 100% of the training set (for debugging or if it's huge), set this flag # DEFAULT trainer = Trainer(train_percent_check=1.0) # check 10% only trainer = Trainer(train_percent_check=0.1)","title":"Training Loop"},{"location":"Trainer/Training Loop/#accumulated-gradients","text":"Accumulated gradients runs K small batches of size N before doing a backwards pass. The effect is a large effective batch size of size KxN. # DEFAULT (ie: no accumulated grads) trainer = Trainer(accumulate_grad_batches=1)","title":"Accumulated gradients"},{"location":"Trainer/Training Loop/#anneal-learning-rate","text":"Cut the learning rate by 10 at every epoch listed in this list. # DEFAULT (don't anneal) trainer = Trainer(lr_scheduler_milestones=None) # cut LR by 10 at 100, 200, and 300 epochs trainer = Trainer(lr_scheduler_milestones='100, 200, 300')","title":"Anneal Learning rate"},{"location":"Trainer/Training Loop/#force-training-for-min-or-max-epochs","text":"It can be useful to force training for a minimum number of epochs or limit to a max number # DEFAULT trainer = Trainer(min_nb_epochs=1, max_nb_epochs=1000)","title":"Force training for min or max epochs"},{"location":"Trainer/Training Loop/#force-disable-early-stop","text":"Use this to turn off early stopping and run training to the max_epoch # DEFAULT trainer = Trainer(enable_early_stop=True)","title":"Force disable early stop"},{"location":"Trainer/Training Loop/#gradient-clipping","text":"Use this to turn off early stopping and run training to the max_epoch # DEFAULT (ie: don't clip) trainer = Trainer(gradient_clip=0)","title":"Gradient Clipping"},{"location":"Trainer/Training Loop/#inspect-gradient-norms","text":"Looking at grad norms can help you figure out where training might be going wrong. # DEFAULT (-1 doesn't track norms) trainer = Trainer(track_grad_norm=-1) # track the LP norm (P=2 here) trainer = Trainer(track_grad_norm=2)","title":"Inspect gradient norms"},{"location":"Trainer/Training Loop/#set-how-much-of-the-training-set-to-check","text":"If you don't want to check 100% of the training set (for debugging or if it's huge), set this flag # DEFAULT trainer = Trainer(train_percent_check=1.0) # check 10% only trainer = Trainer(train_percent_check=0.1)","title":"Set how much of the training set to check"},{"location":"Trainer/Validation loop/","text":"The lightning validation loop handles everything except the actual computations of your model. To decide what will happen in your validation loop, define the validation_step function . Below are all the things lightning automates for you in the validation loop. Note Lightning will run 5 steps of validation in the beginning of training as a sanity check so you don't have to wait until a full epoch to catch possible validation issues. Check validation every n epochs If you have a small dataset you might want to check validation every n epochs # DEFAULT trainer = Trainer(check_val_every_n_epoch=1) Set how much of the validation set to check If you don't want to check 100% of the validation set (for debugging or if it's huge), set this flag # DEFAULT trainer = Trainer(val_percent_check=1.0) # check 10% only trainer = Trainer(val_percent_check=0.1) Set how much of the test set to check If you don't want to check 100% of the test set (for debugging or if it's huge), set this flag # DEFAULT trainer = Trainer(test_percent_check=1.0) # check 10% only trainer = Trainer(test_percent_check=0.1) Set validation check frequency within 1 training epoch For large datasets it's often desirable to check validation multiple times within a training loop # DEFAULT trainer = Trainer(val_check_interval=0.95) # check every .25 of an epoch trainer = Trainer(val_check_interval=0.25) Set the number of validation sanity steps Lightning runs a few steps of validation in the beginning of training. This avoids crashing in the validation loop sometime deep into a lengthy training loop. # DEFAULT trainer = Trainer(nb_sanity_val_steps=5)","title":"Validation loop"},{"location":"Trainer/Validation loop/#check-validation-every-n-epochs","text":"If you have a small dataset you might want to check validation every n epochs # DEFAULT trainer = Trainer(check_val_every_n_epoch=1)","title":"Check validation every n epochs"},{"location":"Trainer/Validation loop/#set-how-much-of-the-validation-set-to-check","text":"If you don't want to check 100% of the validation set (for debugging or if it's huge), set this flag # DEFAULT trainer = Trainer(val_percent_check=1.0) # check 10% only trainer = Trainer(val_percent_check=0.1)","title":"Set how much of the validation set to check"},{"location":"Trainer/Validation loop/#set-how-much-of-the-test-set-to-check","text":"If you don't want to check 100% of the test set (for debugging or if it's huge), set this flag # DEFAULT trainer = Trainer(test_percent_check=1.0) # check 10% only trainer = Trainer(test_percent_check=0.1)","title":"Set how much of the test set to check"},{"location":"Trainer/Validation loop/#set-validation-check-frequency-within-1-training-epoch","text":"For large datasets it's often desirable to check validation multiple times within a training loop # DEFAULT trainer = Trainer(val_check_interval=0.95) # check every .25 of an epoch trainer = Trainer(val_check_interval=0.25)","title":"Set validation check frequency within 1 training epoch"},{"location":"Trainer/Validation loop/#set-the-number-of-validation-sanity-steps","text":"Lightning runs a few steps of validation in the beginning of training. This avoids crashing in the validation loop sometime deep into a lengthy training loop. # DEFAULT trainer = Trainer(nb_sanity_val_steps=5)","title":"Set the number of validation sanity steps"},{"location":"Trainer/debugging/","text":"These flags are useful to help debug a model. Fast dev run This flag is meant for debugging a full train/val/test loop. It'll activate callbacks, everything but only with 1 training and 1 validation batch. Use this to debug a full run of your program quickly # DEFAULT trainer = Trainer(fast_dev_run=False) Inspect gradient norms Looking at grad norms can help you figure out where training might be going wrong. # DEFAULT (-1 doesn't track norms) trainer = Trainer(track_grad_norm=-1) # track the LP norm (P=2 here) trainer = Trainer(track_grad_norm=2) Make model overfit on subset of data A useful debugging trick is to make your model overfit a tiny fraction of the data. # DEFAULT don't overfit (ie: normal training) trainer = Trainer(overfit_pct=0.0) # overfit on 1% of data trainer = Trainer(overfit_pct=0.01) Print the parameter count by layer By default lightning prints a list of parameters and submodules when it starts training. Print which gradients are nan This option prints a list of tensors with nan gradients. # DEFAULT trainer = Trainer(print_nan_grads=False) Log GPU usage Lightning automatically logs gpu usage to the test tube logs. It'll only do it at the metric logging interval, so it doesn't slow down training.","title":"Debugging"},{"location":"Trainer/debugging/#fast-dev-run","text":"This flag is meant for debugging a full train/val/test loop. It'll activate callbacks, everything but only with 1 training and 1 validation batch. Use this to debug a full run of your program quickly # DEFAULT trainer = Trainer(fast_dev_run=False)","title":"Fast dev run"},{"location":"Trainer/debugging/#inspect-gradient-norms","text":"Looking at grad norms can help you figure out where training might be going wrong. # DEFAULT (-1 doesn't track norms) trainer = Trainer(track_grad_norm=-1) # track the LP norm (P=2 here) trainer = Trainer(track_grad_norm=2)","title":"Inspect gradient norms"},{"location":"Trainer/debugging/#make-model-overfit-on-subset-of-data","text":"A useful debugging trick is to make your model overfit a tiny fraction of the data. # DEFAULT don't overfit (ie: normal training) trainer = Trainer(overfit_pct=0.0) # overfit on 1% of data trainer = Trainer(overfit_pct=0.01)","title":"Make model overfit on subset of data"},{"location":"Trainer/debugging/#print-the-parameter-count-by-layer","text":"By default lightning prints a list of parameters and submodules when it starts training.","title":"Print the parameter count by layer"},{"location":"Trainer/debugging/#print-which-gradients-are-nan","text":"This option prints a list of tensors with nan gradients. # DEFAULT trainer = Trainer(print_nan_grads=False)","title":"Print which gradients are nan"},{"location":"Trainer/debugging/#log-gpu-usage","text":"Lightning automatically logs gpu usage to the test tube logs. It'll only do it at the metric logging interval, so it doesn't slow down training.","title":"Log GPU usage"},{"location":"Trainer/hooks/","text":"","title":"Hooks"},{"location":"examples/Examples/","text":"Template model definition In 99% of cases you want to just copy this template to start a new lightningModule and change the core of what your model is actually trying to do. # get a copy of the module template wget https://github.com/williamFalcon/pytorch-lightning/blob/master/examples/new_project_templates/lightning_module_template.py Trainer Example __main__ function Normally, we want to let the __main__ function start the training. Inside the main we parse training arguments with whatever hyperparameters we want. Your LightningModule will have a chance to add hyperparameters. from test_tube import HyperOptArgumentParser if __name__ == '__main__': # use default args given by lightning root_dir = os.path.split(os.path.dirname(sys.modules['__main__'].__file__))[0] parent_parser = HyperOptArgumentParser(strategy='random_search', add_help=False) add_default_args(parent_parser, root_dir) # allow model to overwrite or extend args parser = ExampleModel.add_model_specific_args(parent_parser) hyperparams = parser.parse_args() # train model main(hyperparams) Main Function The main function is your entry into the program. This is where you init your model, checkpoint directory, and launch the training. The main function should have 3 arguments: - hparams: a configuration of hyperparameters. - slurm_manager: Slurm cluster manager object (can be None) - dict: for you to return any values you want (useful in meta-learning, otherwise set to _) def main(hparams, cluster, results_dict): \"\"\" Main training routine specific for this project :param hparams: :return: \"\"\" # init experiment log_dir = os.path.dirname(os.path.realpath(__file__)) exp = Experiment( name='test_tube_exp', debug=True, save_dir=log_dir, version=0, autosave=False, description='test demo' ) # set the hparams for the experiment exp.argparse(hparams) exp.save() # build model model = MyLightningModule(hparams) # callbacks early_stop = EarlyStopping( monitor=hparams.early_stop_metric, patience=hparams.early_stop_patience, verbose=True, mode=hparams.early_stop_mode ) model_save_path = '{}/{}/{}'.format(hparams.model_save_path, exp.name, exp.version) checkpoint = ModelCheckpoint( filepath=model_save_path, save_function=None, save_best_only=True, verbose=True, monitor=hparams.model_save_monitor_value, mode=hparams.model_save_monitor_mode ) # configure trainer trainer = Trainer( experiment=exp, cluster=cluster, checkpoint_callback=checkpoint, early_stop_callback=early_stop, ) # train model trainer.fit(model) The main function will start training on your main function. If you use the HyperParameterOptimizer in hyper parameter optimization mode, this main function will get one set of hyperparameters. If you use it as a simple argument parser you get the default arguments in the argument parser. So, calling main(hyperparams) runs the model with the default argparse arguments. main(hyperparams) CPU hyperparameter search # run a grid search over 20 hyperparameter combinations. hyperparams.optimize_parallel_cpu( main_local, nb_trials=20, nb_workers=1 ) Hyperparameter search on a single or multiple GPUs # run a grid search over 20 hyperparameter combinations. hyperparams.optimize_parallel_gpu( main_local, nb_trials=20, nb_workers=1, gpus=[0,1,2,3] ) Hyperparameter search on a SLURM HPC cluster def optimize_on_cluster(hyperparams): # enable cluster training cluster = SlurmCluster( hyperparam_optimizer=hyperparams, log_path=hyperparams.tt_save_path, test_tube_exp_name=hyperparams.tt_name ) # email for cluster coms cluster.notify_job_status(email='add_email_here', on_done=True, on_fail=True) # configure cluster cluster.per_experiment_nb_gpus = hyperparams.per_experiment_nb_gpus cluster.job_time = '48:00:00' cluster.gpu_type = '1080ti' cluster.memory_mb_per_node = 48000 # any modules for code to run in env cluster.add_command('source activate pytorch_lightning') # name of exp job_display_name = hyperparams.tt_name.split('_')[0] job_display_name = job_display_name[0:3] # run hopt print('submitting jobs...') cluster.optimize_parallel_cluster_gpu( main, nb_trials=hyperparams.nb_hopt_trials, job_name=job_display_name ) # run cluster hyperparameter search optimize_on_cluster(hyperparams)","title":"Examples"},{"location":"examples/Examples/#template-model-definition","text":"In 99% of cases you want to just copy this template to start a new lightningModule and change the core of what your model is actually trying to do. # get a copy of the module template wget https://github.com/williamFalcon/pytorch-lightning/blob/master/examples/new_project_templates/lightning_module_template.py","title":"Template model definition"},{"location":"examples/Examples/#trainer-example","text":"__main__ function Normally, we want to let the __main__ function start the training. Inside the main we parse training arguments with whatever hyperparameters we want. Your LightningModule will have a chance to add hyperparameters. from test_tube import HyperOptArgumentParser if __name__ == '__main__': # use default args given by lightning root_dir = os.path.split(os.path.dirname(sys.modules['__main__'].__file__))[0] parent_parser = HyperOptArgumentParser(strategy='random_search', add_help=False) add_default_args(parent_parser, root_dir) # allow model to overwrite or extend args parser = ExampleModel.add_model_specific_args(parent_parser) hyperparams = parser.parse_args() # train model main(hyperparams) Main Function The main function is your entry into the program. This is where you init your model, checkpoint directory, and launch the training. The main function should have 3 arguments: - hparams: a configuration of hyperparameters. - slurm_manager: Slurm cluster manager object (can be None) - dict: for you to return any values you want (useful in meta-learning, otherwise set to _) def main(hparams, cluster, results_dict): \"\"\" Main training routine specific for this project :param hparams: :return: \"\"\" # init experiment log_dir = os.path.dirname(os.path.realpath(__file__)) exp = Experiment( name='test_tube_exp', debug=True, save_dir=log_dir, version=0, autosave=False, description='test demo' ) # set the hparams for the experiment exp.argparse(hparams) exp.save() # build model model = MyLightningModule(hparams) # callbacks early_stop = EarlyStopping( monitor=hparams.early_stop_metric, patience=hparams.early_stop_patience, verbose=True, mode=hparams.early_stop_mode ) model_save_path = '{}/{}/{}'.format(hparams.model_save_path, exp.name, exp.version) checkpoint = ModelCheckpoint( filepath=model_save_path, save_function=None, save_best_only=True, verbose=True, monitor=hparams.model_save_monitor_value, mode=hparams.model_save_monitor_mode ) # configure trainer trainer = Trainer( experiment=exp, cluster=cluster, checkpoint_callback=checkpoint, early_stop_callback=early_stop, ) # train model trainer.fit(model) The main function will start training on your main function. If you use the HyperParameterOptimizer in hyper parameter optimization mode, this main function will get one set of hyperparameters. If you use it as a simple argument parser you get the default arguments in the argument parser. So, calling main(hyperparams) runs the model with the default argparse arguments. main(hyperparams)","title":"Trainer Example"},{"location":"examples/Examples/#cpu-hyperparameter-search","text":"# run a grid search over 20 hyperparameter combinations. hyperparams.optimize_parallel_cpu( main_local, nb_trials=20, nb_workers=1 )","title":"CPU hyperparameter search"},{"location":"examples/Examples/#hyperparameter-search-on-a-single-or-multiple-gpus","text":"# run a grid search over 20 hyperparameter combinations. hyperparams.optimize_parallel_gpu( main_local, nb_trials=20, nb_workers=1, gpus=[0,1,2,3] )","title":"Hyperparameter search on a single or multiple GPUs"},{"location":"examples/Examples/#hyperparameter-search-on-a-slurm-hpc-cluster","text":"def optimize_on_cluster(hyperparams): # enable cluster training cluster = SlurmCluster( hyperparam_optimizer=hyperparams, log_path=hyperparams.tt_save_path, test_tube_exp_name=hyperparams.tt_name ) # email for cluster coms cluster.notify_job_status(email='add_email_here', on_done=True, on_fail=True) # configure cluster cluster.per_experiment_nb_gpus = hyperparams.per_experiment_nb_gpus cluster.job_time = '48:00:00' cluster.gpu_type = '1080ti' cluster.memory_mb_per_node = 48000 # any modules for code to run in env cluster.add_command('source activate pytorch_lightning') # name of exp job_display_name = hyperparams.tt_name.split('_')[0] job_display_name = job_display_name[0:3] # run hopt print('submitting jobs...') cluster.optimize_parallel_cluster_gpu( main, nb_trials=hyperparams.nb_hopt_trials, job_name=job_display_name ) # run cluster hyperparameter search optimize_on_cluster(hyperparams)","title":"Hyperparameter search on a SLURM HPC cluster"}]} \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml index 9dc13765..f3ad50a2 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -2,72 +2,72 @@ None - 2019-06-29 + 2019-07-17 daily None - 2019-06-29 + 2019-07-17 daily None - 2019-06-29 + 2019-07-17 daily None - 2019-06-29 + 2019-07-17 daily None - 2019-06-29 + 2019-07-17 daily None - 2019-06-29 + 2019-07-17 daily None - 2019-06-29 + 2019-07-17 daily None - 2019-06-29 + 2019-07-17 daily None - 2019-06-29 + 2019-07-17 daily None - 2019-06-29 + 2019-07-17 daily None - 2019-06-29 + 2019-07-17 daily None - 2019-06-29 + 2019-07-17 daily None - 2019-06-29 + 2019-07-17 daily None - 2019-06-29 + 2019-07-17 daily \ No newline at end of file diff --git a/sitemap.xml.gz b/sitemap.xml.gz index 2b7f211b1c9567bb858d0b392f4b0e9f9d764e6b..1344ddedccbc4a3cb31b55520d3aa863e77be961 100644 GIT binary patch literal 205 zcmV;;05bm{iwFpweJ@=C|8r?{Wo=<_E_iKh0PU4Q4#FT1MfaY9urJfPsWp`DT)NT& z5Q;4cg$ii(_EKAoS1@5V^XJdcyyej5F=%v`&MRwbT#y_iX@qT+>1upF9kLy6*oNMm z_A;OtHonGv2;&}LnkM2^kOLn*v91Fz`Z#!4O~^@w*#^a$4=f5%Z3R18BPq=4V{#t` z+p=w5R9RkTMH$ztw?;(IO(!o-URlePep2{x77BbZ37CKhn1BiRXTW!hzlOa4Lh+5%Pk%{S~e z8m|J1Ve2d0g)r;^rfDKx2i1$g6F0WtWfunzs|l2pm~T+5`M{zOGfwiOvx>p2KBn-Y zcMUISUS@Qg6=htn-Wrjeu&ug`>dG6T&6B~8vryoRNx%e5zywUdKLfs7{5AXq`|nhl Hn+5;?%ne~6 diff --git a/source/_static/tf_loss.png b/source/_static/tf_loss.png new file mode 100644 index 0000000000000000000000000000000000000000..5bc631e44dfe4ebbbb0f0350084845607d743e56 GIT binary patch literal 224597 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 nxL8xlZe0wjF;;hA1bsR&Z)tiaUv* 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
$u(%aWMW__N&al9 zm@yC;bvtW2-y$kMrJyo+24IO0mc)n%;Aklkoe53A9E*A{R-U9{As!)2PJvx~jfkZ* zNT4kSHAH0k;+kljMgI?Le2fn53;Z%&oUeed1ye&9x&oLmu!oNCT7gj3kH_jQY&z{a zpk-9c*u@DbFGKL9YQWdZPT(a_R$auIlBjktx&JmSEJQme&m$8MKW z{U`9&L8Ya*q#b96YTVBeSQ+2d3>atw*gK(5#()a0?;u*=ZU_0AxGe@q&0c|ck>wzi z`yV#)1OKy{1C*&lMPB#ZDFJZguJlBs&)nB$fKu%ya2hW4q++4P$+B4{fQu(%jJ(Mn zpf|au%IW6YyySoQRNuNoIIB*eGL~bVKhD9{nV#WY8GCaBfM4|i&JqX0V;S_NAi|Kq zW!BRGQ#=Ham;}I{rw%Tn?jKktMrqLfezG2MIjAkeXQ=Td3l2?il%H$#T4V+0WDb>2msUmrd}*_QzB_be;#%I^Zby~!C_ zR5CfQ89`4fJR~e=u4{6~xSL3M5kuhZvdx<}_b{+=07kxHg#0MbZ6hAFD5s^aL(4sP zvDtKpOR5qQ*(0(EJb!1;h7jfJ3+>GF-^ve!(qWZB@?>8{5VZt z13VK8jz|l7bY3@SspoBX3g-g=A@h!3N!kEnPBDN1V+R&;a&FnN zR9LxQetrj(u;6$MItGe?-eDI|JhlL(Eo!TMhj3>JXYOoCJGo`oK_#6`Xj-UPm>C{i zV7c~=np1*syTIU*o+FV0PyrOg0ATr~Lsv|qPUVODJ1Eq#&{8#4v1DH%zcOWoGIZMKo}N>Si##d-g?dYb9bZfgCLRZn zF|k1ua16u3foQoAI?2R4bWaPY0EYc*IUgJi{`GE_?4?tjGrrn^Cj+FGmrnxXAslrZ zpgz9M%Pxxhz+ncM=2M*EIAkO{CO_E(P@OvtzW~!k8+0BXJZ-6r3%C7HMl={usFuK^ z)I8SlaTtMZfF8P1A;pMF`l`FtNrVm}&!Q$isQgNApK z*|2gx7)s5hLAZqww@t`b^CpU$G3Y`8Ar3-?y0?J(M)ikiI3_bw2LzP$3W(`lbov!X zUUe9PRjSCxIAvnNE!&T6P1SXD^&qZ(hu~AqC+cKb)u3#8N3Kd~sXF^5f{ce|o z#XdH8g3{w(<8a*nI8GLPUf$&l1<~4UZ^XY!i@In*7u4(yfFg_{C|+E_wHE)nP=c!v z(qt;-;kIvTI-8-Ov0KR+z+87Uf6-+nY`%GFaUzu)ceo%9fFpYxn4m`SY=}N&rce2B z{My!&1Us@Vw-2YPC@4c-SX@kBc?6ZQ&o4{W+5ikK`OzM_EgxlScyDj}Bwyjbl(`hI z>QNmaj^j9ScQ5WZ?xmKj%6=}FL&~Lj9&Uzz7xx%=NdG_RZv`f6WqlPWc z0O1@-aIZ)ZqCnl+W^F;VQtqeMU*jf{!)4+1c&*}l3yRYf2jVnZLn1D}cJv&$P2aDv zbUk8{WwxH*pF{c!!{!ee5+L-#sr!EJf0J8Da-;6KtXr7|ftq0P_ z{F25r_89J(jVLdcdLxt!H9_C~Y3#pbt%Xj`*13NWez zaO@8&fA)0kTg2g{c(w`MZPs~yPiFF(gNBl=Z^)(?wiYYi59*R9wYuC%^^qNSE&Mp7 zaIPUdzv_5kC)?m?cBNrN&}LdPI>DSY&cib}Z~!QJtho8KKAz{$;P;OzskxadRR3}D zn)_Y?p8S#Pzd%V4d}@2&XwS-M=ZbOP%dq5o^$cAttPT>8BU~mjbHEw&C3<3qO=Lu0 z7B~!68s7-jFV76DC`n4T6MT82$+r~W`sMzifx-iA11l~a3+p8)f?wl5o41Qun9KH9 zTv3=U*?W3+z+MHfymo%XY`m+nfLWMQu&1&PhG2%VgTcm6!;jYtR;vc z9W!p|d`~gCxSQ_*OX2J`m9O)}*+=`|+54rZZ-~1(LvmM^<0k(hD zGDVMaGq4dV(WnMbE0zj#DyWF2Q9r&5Rw{UC~yO(x~Nk_OP~q(5jVX%meRb$G~d3C(pB9 zQG5fgp;w?@+QP73qb}?U9GyG(Jryb^zbt(-8~?I0r0?F^ey88K7Y1x(s>Ara`%1uj znjSf2?8VK!1Gc?sMt|>8s4YF56&7or(kc}oy-AeKRboxbye=0GjF$#xwm|w}SN-A%b-p42)(00#XGgvag>8>~d&x6xd z8Gs~upY<5mH(*EzvMVR{LOGr2K`=v^hVL56=wF5fO+@#x;9Cg?$8VQ)bMBOwj@qzM zTV*@WkZPm~vgHibf2{Rq^}ki}D{)uw1!pL2kQ>clJIXt5t9J}DhFu2VvS5Hana-lL z?dQrI&vs0Y#kXNuf5jixUKFhL`v|HrMZP9xd70Z`2|ni0#;L8q60GEq&r&yQx?H*q z$4dX$>Vn}9SI6UTfvSp(!2$)xXaC0;G|U9J{y_9U#5>QDTZ}!6^(Ig9!?lsPEBKqS zm8N%=ndJd;+h7LuosYcjA%7ZS~LG#eOMTyLwo%%J|rflgKUs@1D{A z2p^ssK38&m9>MXhvB_VK7tZ>%Pc0sGfYO-#^d+$Xe5^*-Domzpu;63lt=F^azi zG{9kN!e3YboQMC{x%uyZ1V<7QYrUQ0xsa3AIl7T`op1kO48!s9?)ow0il2ZoqGuOB zV!8VLi%_?h>i^){>tBfeIb`Y>sz0kSXgu#W zJ&HL@K=b-G8OeDI(%gaus~h?ZkvCWr#1vmdIxw8Gc>J=8+EP=LPe-MBEKMyj4?VgXeeRCQ)Awtk{vxG?(dRiM3-U7ZvcRY_gh&HhK zTpjZXVCAiOBjVA-a^m?97CKH0xRV~@$zYbcWSp1OVRQzFN@j!P-2kVtJBLUewwfj9 z0G^-Q!cet&_koROE3AH4mu zyF2Iah3K-yN?&`;!S6q-26P?$z{-Z5sRAwMM96|!6lEdBk}06()|?#xA;SH<)+QOF z%_RDXi=oUuUHC>>^F53gD0evmj3Dd{5EbjkRPbpQzhG1U^l+*`V8!%k36$9|PiaL$ z_sU+o9%{A)=WT!FGOj?hOm#$;3THoX3#kn?#OVS=sIX4OATF;86asm=`D9ToFjoIS$?^_}56SEvZZNgSW|z-IsV+y>nwarQ-JJni ztHCJ%^n`hNdBski{OtGBvD!j5)?B#7F)dm68*@I*@~%ph0R#2)Fd&Et+j_|U1RzU? z_3irL@(ckti;w3mBl5N>z#4=B8~3Yyb^{S%RRGCy$=ZbTdOsKt^F&~Rp<>eG!}%Kb z`F6m+To$3SkhTS>IoD|@*}rfHdb#Ki!wA6kScG#5s%R3c)2geUfle#)Y-%~T*g()I z5vu>BW)pXivQJb#0y>331GWGYl<1Dr_l*FkC;}>Q{Xq150rgF%&-eIEid6w8gZF2v z_tSMHk@aMBO`JZT_k*3_4&Y9&$z3!G!#R`QLtJPN02c%jqx~@#g7yJz3FIw`iV1eOE zN}9lfdK`c>O8%~Q<|GPc7mb}36&FBXt_r9$s{sNOSO;v2Rhe_GpJwTrfcMvnCYlmE z2Xw(9#twsujX@7mXQLHb=!~yiTmbe$n}OE%b}plcs3QQnxT}VyfT6NxASiZ8A!u!T z{$QC9&(Y(34!z`isw;}IU14pllu@4mYD@z^lKaEq>^JhsSEVv1SlwwGKv#W=4f?hj zH!Q-_hqU%ChnP2SzMPd@V;m!uX5{bTs5sbry|k__g3?ZNX;408^puz^kyY_H(5-m& z08_PWz552UgZA!Yy}*)uuot zzaPX{^hsX0Z+@HB^D+?%sAT#w2mL{urN7~ZM+{|Tf2!=L>dJ)o@yOL4#LiZ7Hs`uE zVBNGn0Ts7Aob_&H8IXIW7aCg%JwYva1T;EJcs>hkPmVCJ~Uue9)Z zY*|K5*^}>bW(v$zB4<$c0Z+TytiC!%KBYx8dD&c^|$WqWx^g5H$#^GFiuR zaj@0&UBv23b+hnrqsiS@lf+g#lmMF8k4&Yd(Hl4R;;g9J`oW)_`NPSbXI32TfZ<6u z(59!z1)>IFU>BDQiOzRK7w#OI zEbpt*loIxrif(I~?3pbV5F@X@(hK}c#erJj$5{Ae#3I7Z;g~vS?%faDE%2on6dyAI zMx;?vy2Q;y&te~YkbquIIH{BF;~A*YdwnP)A#i`9)%rT#3}1j&uvwvTAm#} z*XYjHkf^-f!Lf_t)PD%6dN~k}ifd%;{IzNAyD{jdEd&B`vLD}OW+j=J`FpsOj(cov z((5YlV3Ck!riGILcG0->nn7zR>mli`@sX>=vF_}xr zUgR8kD!1bH+-^8Y&aw>F2@b+My_ zP1JAKwx}XYG6(#DEcspS$cc$DB}tzodxdRV>fw+VoKs!tR*k1N#J}GacIuP7lBD+5 z0!p(>Uv0ir&wM*G|>-z*g_kAZ{`|Os9ykR`73vX|Bav3=B%G@V| z&CJ<9n^!0Hy>@jxl0eYK(ajRBxjk>b!cVmfv%^F>_vcAjb4%ozG3LLHaa)~=HKHv z%?R0JtZ_jC?ph7a0jlUKU=ES;_aHWw_IC>kKd97*LaIcFjxeBaNB)syw=yuQR2MVE z`oBIk2IKT{v!0^Dz-sJ8PfrWloc$f$nL^!t03~A_)e1r$@_GVDhABh z7I2UI1J`f)B{AW>UB$)4tm5JO9_lrCGR@QnCWF=tc{T0bB?wzWdHX2oCR~bD^B6yr z5;DFMG!5cJ+`X=j_ye>T4xJg;$0`)y_V%UJ9<=Ry)hR7ahvX+*9qo;2r2|qB zFOz`5G%LNRTylSPn4Bfm&#Wk<{zvc!Ryk%ZM0%WYd~5htXT)6FQ-GF~6d-u3eNNt} z0v|4$&inxjj?hxUVY;@uZDl52_WUY9^4S|M(?&bdBX3GkE)n{tW}nlMJjv# zn+5Y2#FK`J7>;SDoNdy1LimbO4i*PPi6(g@AG$8BHft#jn-hSoLqYm57+KL@$gae)}PaX9*0O2%fO%%-}L=NlpB)ok2sY zb8!ON8_25}qIk&fs7|OgYI-xhMd7Dw7iV~MAeBti`etW)dB72UWgP3ot)vFDq{m}r zTdJy_0TA$N3+?S9plB6SG>8+LnG6`Ur$a)hx}Yy~xr8y{(n8T?$7io2jh4 zS27b%2N1Z+>DTG7-m?_JI?hP5l*dM_L@U90@gSxeY$aWFj;Tj zsfu%oR35poUXwYkKvRdb!1NthAg_fa^W-MID0KyljQ!S$x~E!Ku5e{J&CfDLo?D#? z6DZ>)0i=Kh4APr1jjL+_ZaqYv#N%(n_X$gzbN(@=vHcz-$T9%=I zhM8Fv4xTPIw*GB!e)vb9&c?m|JPI|oIR9%No&GO?ehthwjH83hkTib!n`dL_91dI3RdQCztPI3(I_%4eu`|{p z)V4q`o7de2Y?BFkQ$>$2ASjezz1k4iYSD2o#3=+GSjNw zw99eq&J;Kb3^)SjS(ylym`$VTJOCTJ*gUpMLcx#{)ltX%E+NQ^sF2JmuYkv3f=uYf8kt9(6=7@nn z==iSB1p>sV3!@6Gn#-tui$3&U41${9gP(g4R;bWn&#U7Gg|@pNs@>FtZboUBAOcR~ zv~I6{5rKs(>7W+xdfXRfEDq10tn34K zXW(|_d=D}Y!`nHrdT!yz0v??2vQb~2NgQyXTj4~0<9Iuzojk;rVyrw>LvQcs{^u_&0B|*505xxs8T%^~nehtdEo?Jp zaH{YcQT@y{{%KD_aoPCDYZ)gIbvNEbRfl2kVUaO`+v5ie-knK4KNkqx+n8<$@=_D0 zs>HnW&2bIx_t9jZBG@ozHawQ%iQ=()##H!4=BwSS^_h&DqdcJ| z$PHmzyk6dwO0EylSMoT|#@BX~`q=y_1rK zrRChoWK2B-R_2Pk6MBmoX1pYpRH@kyxoRszMrFdtlJbV<;U)qWk-e=1MY82?t~AzE zGBLDw7s2)co^t-Bmfd{Y5(-2ZO;X`Elwd!QgyE0Bhk>xH~_Yl;{IjVNOM23Em*>O;@ zt=LOPKPJ4B(lecwK=pk-WKDu(=u|a5WfUA9FWJ=%6gBQ3qT*(YI+g`WJ1?~EJK@(y zWv5^+a^u*OA5>=gHaHtW$D42E#=&cAIWfU=gqQp|Pd2wf0;2x<;$vc+#9}Px3V4kK zmyZC`7Xxf;*=@{w?Bd1#EW$v0!-zJ8u$!Nk_zh!JDJTsMW9)}K$78i0IC#sSIy4ZE z9kT{^ot^5`mL-JgEZ#Z?mbwbInHQu8S*55GZ>mscL$oGu@fqW#KriIko2(E`akw2$ ziUM|WN!JiSxF5RrSiGW@Zag~Tb>Yep4&%63XgA}sYqcJkNgR7YhwMcs{T7SiAZZXaZb@7Q@T7$c|c3%yhjLQB5!bJB-b9tF@Cqqm5*1nwiy?Uc6D0W00&~BW7z&|SGTs3 zyiu#kwsBdfay@}@)wHsD*ChIS-&zY(W=Da2@Cie?*`~!z)^zj67bLx;g9T0zsS7sE zlhK%a8L4}+Jsy)~KaVz0eL)mOX?h9Q5^|$Q$+rs4BGGZBr%DnnBc%#ZE+GU+k<+9`ubcjCFz^Ya zp|mdN+J_sB2JdtZS3_Gi$#iD*0Z)9@>}qTimk2uWHL2a%sg*HTPx97q@D;E+E)CT@ zIee}PIydX<*t&kc)~QcC03aIn6-)UIoV!&_<3Z=eC1}WWsBcT%GnxvlpP_TU&zs=P z{}T36G)m9FAt#)xzmbpOM+XR;yOyd5=Ge>#YkjlR1nIUjLI;j6P*mqp(Olqe&!mci1%}OV2C4WA)#C=N6UggTI0EhnO ziGJ?R;LG9403NYqVEsLm5pf^rruIr~N#@j(*NL&_xiUEhQ?ce9*TyE-yF;uK*lI#c>4b4&&=cDY)`jIF>u|<`s*A}C}8>@cud zXZ`;3s(JwXdHcEe(r^BZTOOA4b7!XCgF@XB9EPV%QuMuuV^7z8HNjhgbg-PQPQB~? z&E4~7(|teAe>UAew*Xl3Kb!7*oA_tb{lHxR@pRvt>p!0Edn^0@ho>u*RRi_rpkk8nk)E?a zp{!2Y#3-4=D0}UhdQLcNEsBj$&e-xY|KrKlUgy6vl}LkYct4*cq2I|HmHCP z(VZ=+oWRyePneDSs*>w}`r*STbX+zt`Vy(4m=Wogw+=03k?D5Di*ix*)?LFUj?x z*v6XcLut(Nm);vjOP`YBgjw0)qT?~mtiN^9uh8L35ngS=E z$eET$afsCRWZs+v!IkP;8#l!dlm#q2u}Dw7WfqXN&qL@38|-_B^}kO}XcO)@#LwHD zBXyb2Q^sTjzz$^UFiyue`!m38x_byXdh5#@@l;3pH~VM%`$hfUNv>3u`gSo)>qX!Q z5r-ahQ`y|Kq+4dv#vnAQy`S4$r&`vi{N!eTvu*2uDgGITaGz0&NvbP8TLRTOHCxCg zK=%K66{xSi_>3@Cx^a1AVj$yZuV7Yonx|vLto0dQxmhdERtFru2@Q=a#fdl>H>;CqPfB*4+@9Qew z-{<<)vkHYUTZVCF~K>^P1 zcm*$%=Rp7{mOa*Vt#J4KqW}5{n~R{>8-q{$xQ3$Q7#;}A8|X3sBkmp}=0|<&!~=q~ zgyHQig~s)*Ygb`=k^{waZwY|Asfz$?!)~Etm(#VWjD>b6o`{a`utDIRYT&wB%v|*3 zhwyW}Y8pVsS`o3h2+ALh!+w;qecJZ+{TeDuhuRtL!2|4Z=?#?tyuU)}M77m}Z{}LR zjhDQZFOl7206B#u*6BsX$PNsy^Ew-xg~@buzmzo|z`4B}?HH6Mz1a8ceGZU#U{dok z640p#zPcJ^zB2CN^n&>ir-|CHJ^bcgVaJS_HB5Z)Mtq~xj{8$k)C>b~ZE&KWcA(8s zRNdDFT&pMoftwn^@wOjU$VHOfjsV-Ox+=!xnFS))p+LeJhA_dCk-JntsGd~jb%EOf z?^eJH)x@f1lX^aX0Dzm9KAV)8pv* z7Z#v$r9WupcykxRe*v+d51E3_tHh$Cej2kzy7QfFx#&FkwOit?>uHd_?LtM^vP4V% z6M(QLJvKgoio@pDt;!@ob4DQ3(``7BfW0yvN#|#n zcZK)MS&JinZXy?~0xar^+-Zk+KxUCqP0`^BfP|`{d&J)h2BsK&ZWHRiF#B|5fM?r8VJ52>pqxtR_M@MKY&;=Mvf0Yw18-LNO% z6z^17PqPMrl6t?-4fo?^MLY+1%CjP%^Vb%Q2d-F#*vwPIiPaK90s;@mreGELA{d{2_?!}I>OgpE_7;ZKcT z)+^2stSxsR&m3}0n%3!$T)5WWUL5ZV#>SE<)`-_}X)ZB$%YnrG{O+gWK52>h`}IS@ zYy49H7Z_%k@;SN8#H`d+uL2>rY(eKPLA2;ffVHe)dyaDgcR)Zhd_`d=M?p~ub4IlJ zGH@hTL6?d0W1(AVF(zi0T+9$k>7)P=!Vq1}1{m=rPT*QgptjQQ=;6!;UQaA(Ru%vu z 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 luJPDu;eRs{{vyu`X2xQ literal 0 HcmV?d00001