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.CrossEntropyLoss
learning_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
train_dataloaders (DataLoader) -- Used in
trainer.fit()
. A PyTorch DataLoader with training samples. If thelightning_module
has 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_module
has a predefined val_dataloaders method this will be skipped.export_onnx (bool) -- If true, model will be exported to
model.onnx
before 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.MSELoss
learning_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
train_dataloaders (DataLoader) -- Used in
trainer.fit()
. A PyTorch DataLoader with training samples. If thelightning_module
has 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_module
has a predefined val_dataloaders method this will be skipped.export_onnx (bool) -- If true, model will be exported to
model.onnx
before 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
,Trainer
orDataLoader
in 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_metrics
in 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_module
has 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_module
has 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.CrossEntropyLoss
learning_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.CrossEntropyLoss
learning_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
train_dataloders (DataLoader) -- Used in
trainer.fit()
. A PyTorch DataLoader with training samples. If thelightning_module
has 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_module
has 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.MSELoss
learning_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
train_dataloders (DataLoader) -- Used in
trainer.fit()
. A PyTorch DataLoader with training samples. If thelightning_module
has 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_module
has a predefined val_dataloaders method this will be skipped.trainer_kwargs (dict) -- Optional keyword arguments passed to trainer. See Lightning documentation for details.