DeterministicEngine#
- class ignite.engine.deterministic.DeterministicEngine(process_function)[source]#
Deterministic engine derived from
Engine.“Deterministic” run is done by adding additional handlers to synchronize the dataflow and overriding some methods of
Engine:for e in range(num_epochs): set_seed(seed_offset + e) if resume: setup_saved_rng_states() do_single_epoch_iterations(dataloader)
If input data provider is DataLoader, its batch sampler is replaced by
ReproducibleBatchSampler.for e in range(num_epochs): set_seed(seed_offset + e) setup_sampling(dataloader) if resume: setup_saved_rng_states() do_single_epoch_iterations(dataloader)
Internally, torch.backends.cudnn.deterministic = True and torch.backends.cudnn.benchmark = False are also applied.
For more details about dataflow synchronization, please see Dataflow synchronization.
Note
This class can produce exactly the same dataflow when resuming the run from an epoch (or more precisely from dataflow restart) and using torch DataLoader with num_workers > 1 as data provider.
- Parameters:
process_function (Callable[[Engine, Any], Any]) – A function receiving a handle to the engine and the current batch in each iteration, and returns data to be stored in the engine’s state.
Methods
Returns a dictionary containing engine's state:
"epoch_length","iteration", one of"max_epochs"or"max_iters", and other state values defined byengine.state_dict_user_keys.- state_dict()[source]#
Returns a dictionary containing engine’s state:
"epoch_length","iteration", one of"max_epochs"or"max_iters", and other state values defined byengine.state_dict_user_keys.engine = Engine(...) engine.state_dict_user_keys.append("alpha") engine.state_dict_user_keys.append("beta") ... @engine.on(Events.STARTED) def init_user_value(_): engine.state.alpha = 0.1 engine.state.beta = 1.0 @engine.on(Events.COMPLETED) def save_engine(_): state_dict = engine.state_dict() assert "alpha" in state_dict and "beta" in state_dict torch.save(state_dict, "/tmp/engine.pt")
- Returns:
a dictionary containing engine’s state
- Return type:
OrderedDict
Changed in version 0.5.5: Added support for serializing
max_iters.