Evaluator¶
FunctionalEvaluator¶
Classification¶
- class nni.retiarii.evaluator.pytorch.Classification(criterion=<class 'torch.nn.modules.loss.CrossEntropyLoss'>, learning_rate=0.001, weight_decay=0.0, optimizer=<class 'torch.optim.adam.Adam'>, train_dataloader=None, val_dataloaders=None, export_onnx=True, **trainer_kwargs)[源代码]¶
Evaluator that is used for classification.
- 参数
criterion (nn.Module) -- Class for criterion module (not an instance). default:
nn.CrossEntropyLosslearning_rate (float) -- Learning rate. default: 0.001
weight_decay (float) -- L2 weight decay. default: 0
optimizer (Optimizer) -- Class for optimizer (not an instance). default:
Adamtrain_dataloaders (DataLoader) -- Used in
trainer.fit(). A PyTorch DataLoader with training samples. If thelightning_modulehas a predefined train_dataloader method this will be skipped.val_dataloaders (DataLoader or List of DataLoader) -- Used in
trainer.fit(). Either a single PyTorch Dataloader or a list of them, specifying validation samples. If thelightning_modulehas a predefined val_dataloaders method this will be skipped.export_onnx (bool) -- If true, model will be exported to
model.onnxbefore training starts. default truetrainer_kwargs (dict) -- Optional keyword arguments passed to trainer. See Lightning documentation for details.
Regression¶
- class nni.retiarii.evaluator.pytorch.Regression(criterion=<class 'torch.nn.modules.loss.MSELoss'>, learning_rate=0.001, weight_decay=0.0, optimizer=<class 'torch.optim.adam.Adam'>, train_dataloader=None, val_dataloaders=None, export_onnx=True, **trainer_kwargs)[源代码]¶
Evaluator that is used for regression.
- 参数
criterion (nn.Module) -- Class for criterion module (not an instance). default:
nn.MSELosslearning_rate (float) -- Learning rate. default: 0.001
weight_decay (float) -- L2 weight decay. default: 0
optimizer (Optimizer) -- Class for optimizer (not an instance). default:
Adamtrain_dataloaders (DataLoader) -- Used in
trainer.fit(). A PyTorch DataLoader with training samples. If thelightning_modulehas a predefined train_dataloader method this will be skipped.val_dataloaders (DataLoader or List of DataLoader) -- Used in
trainer.fit(). Either a single PyTorch Dataloader or a list of them, specifying validation samples. If thelightning_modulehas a predefined val_dataloaders method this will be skipped.export_onnx (bool) -- If true, model will be exported to
model.onnxbefore training starts. default: truetrainer_kwargs (dict) -- Optional keyword arguments passed to trainer. See Lightning documentation for details.
Utilities¶
- class nni.retiarii.evaluator.pytorch.Trainer(logger=True, checkpoint_callback=None, enable_checkpointing=True, callbacks=None, default_root_dir=None, gradient_clip_val=None, gradient_clip_algorithm=None, process_position=0, num_nodes=1, num_processes=1, devices=None, gpus=None, auto_select_gpus=False, tpu_cores=None, ipus=None, log_gpu_memory=None, progress_bar_refresh_rate=None, enable_progress_bar=True, overfit_batches=0.0, track_grad_norm=- 1, check_val_every_n_epoch=1, fast_dev_run=False, accumulate_grad_batches=None, max_epochs=None, min_epochs=None, max_steps=- 1, min_steps=None, max_time=None, limit_train_batches=1.0, limit_val_batches=1.0, limit_test_batches=1.0, limit_predict_batches=1.0, val_check_interval=1.0, flush_logs_every_n_steps=None, log_every_n_steps=50, accelerator=None, strategy=None, sync_batchnorm=False, precision=32, enable_model_summary=True, weights_summary='top', weights_save_path=None, num_sanity_val_steps=2, resume_from_checkpoint=None, profiler=None, benchmark=False, deterministic=False, reload_dataloaders_every_n_epochs=0, reload_dataloaders_every_epoch=False, auto_lr_find=False, replace_sampler_ddp=True, detect_anomaly=False, auto_scale_batch_size=False, prepare_data_per_node=None, plugins=None, amp_backend='native', amp_level=None, move_metrics_to_cpu=False, multiple_trainloader_mode='max_size_cycle', stochastic_weight_avg=False, terminate_on_nan=None)[源代码]¶
Traced version of
pytorch_lightning.Trainer. See https://pytorch-lightning.readthedocs.io/en/stable/common/trainer.html
- class nni.retiarii.evaluator.pytorch.DataLoader(dataset, batch_size=1, shuffle=False, sampler=None, batch_sampler=None, num_workers=0, collate_fn=None, pin_memory=False, drop_last=False, timeout=0, worker_init_fn=None, multiprocessing_context=None, generator=None, *, prefetch_factor=2, persistent_workers=False)[源代码]¶
Traced version of
torch.utils.data.DataLoader. See https://pytorch.org/docs/stable/data.html
Customization¶
- class nni.retiarii.evaluator.pytorch.Lightning(lightning_module, trainer, train_dataloader=None, val_dataloaders=None)[源代码]¶
Delegate the whole training to PyTorch Lightning.
Since the arguments passed to the initialization needs to be serialized,
LightningModule,TrainerorDataLoaderin this file should be used. Another option is to hide dataloader in the Lightning module, in which case, dataloaders are not required for this class to work.Following the programming style of Lightning, metrics sent to NNI should be obtained from
callback_metricsin trainer. Two hooks are added at the end of validation epoch and the end offit, respectively. The metric name and type depend on the specific task.- 参数
lightning_module (LightningModule) -- Lightning module that defines the training logic.
trainer (Trainer) -- Lightning trainer that handles the training.
train_dataloders (DataLoader) -- Used in
trainer.fit(). A PyTorch DataLoader with training samples. If thelightning_modulehas a predefined train_dataloader method this will be skipped.val_dataloaders (DataLoader or List of DataLoader) -- Used in
trainer.fit(). Either a single PyTorch Dataloader or a list of them, specifying validation samples. If thelightning_modulehas a predefined val_dataloaders method this will be skipped.
- class nni.retiarii.evaluator.pytorch.LightningModule(*args, **kwargs)[源代码]¶
Basic wrapper of generated model. Lightning modules used in NNI should inherit this class.
It's a subclass of
pytorch_lightning.LightningModule. See https://pytorch-lightning.readthedocs.io/en/stable/common/lightning_module.html
Cross-graph Optimization (experimental)¶
- class nni.retiarii.evaluator.pytorch.cgo.evaluator.MultiModelSupervisedLearningModule(criterion, metrics, learning_rate=0.001, weight_decay=0.0, optimizer=<class 'torch.optim.adam.Adam'>)[源代码]¶
Lightning Module of SupervisedLearning for Cross-Graph Optimization. Users who needs cross-graph optimization should use this module.
- 参数
criterion (nn.Module) -- Class for criterion module (not an instance). default:
nn.CrossEntropyLosslearning_rate (float) -- Learning rate. default: 0.001
weight_decay (float) -- L2 weight decay. default: 0
optimizer (Optimizer) -- Class for optimizer (not an instance). default:
Adam
- class nni.retiarii.evaluator.pytorch.cgo.evaluator.Classification(criterion=<class 'torch.nn.modules.loss.CrossEntropyLoss'>, learning_rate=0.001, weight_decay=0.0, optimizer=<class 'torch.optim.adam.Adam'>, train_dataloader=None, val_dataloaders=None, **trainer_kwargs)[源代码]¶
Trainer that is used for classification.
- 参数
criterion (nn.Module) -- Class for criterion module (not an instance). default:
nn.CrossEntropyLosslearning_rate (float) -- Learning rate. default: 0.001
weight_decay (float) -- L2 weight decay. default: 0
optimizer (Optimizer) -- Class for optimizer (not an instance). default:
Adamtrain_dataloders (DataLoader) -- Used in
trainer.fit(). A PyTorch DataLoader with training samples. If thelightning_modulehas a predefined train_dataloader method this will be skipped.val_dataloaders (DataLoader or List of DataLoader) -- Used in
trainer.fit(). Either a single PyTorch Dataloader or a list of them, specifying validation samples. If thelightning_modulehas a predefined val_dataloaders method this will be skipped.trainer_kwargs (dict) -- Optional keyword arguments passed to trainer. See Lightning documentation for details.
- class nni.retiarii.evaluator.pytorch.cgo.evaluator.Regression(criterion=<class 'torch.nn.modules.loss.MSELoss'>, learning_rate=0.001, weight_decay=0.0, optimizer=<class 'torch.optim.adam.Adam'>, train_dataloader=None, val_dataloaders=None, **trainer_kwargs)[源代码]¶
Trainer that is used for regression.
- 参数
criterion (nn.Module) -- Class for criterion module (not an instance). default:
nn.MSELosslearning_rate (float) -- Learning rate. default: 0.001
weight_decay (float) -- L2 weight decay. default: 0
optimizer (Optimizer) -- Class for optimizer (not an instance). default:
Adamtrain_dataloders (DataLoader) -- Used in
trainer.fit(). A PyTorch DataLoader with training samples. If thelightning_modulehas a predefined train_dataloader method this will be skipped.val_dataloaders (DataLoader or List of DataLoader) -- Used in
trainer.fit(). Either a single PyTorch Dataloader or a list of them, specifying validation samples. If thelightning_modulehas a predefined val_dataloaders method this will be skipped.trainer_kwargs (dict) -- Optional keyword arguments passed to trainer. See Lightning documentation for details.