def clone_model(model: nn.Module) -> nn.Module: names_binary = set(name for name, param in named_parameters_binary(model)) model_copied = copy.deepcopy(model) for name, param in model_copied.named_parameters(): if name in names_binary: param.is_binary = True return model_copied
def __init__(self, trainer): super().__init__(trainer) self.autocorrelation = Autocorrelation( n_lags=self.timer.batches_in_epoch, with_autocorrelation=isinstance(trainer.train_loader.dataset, MNISTSmall)) self.graph_mcmc = GraphMCMC(named_params=named_parameters_binary( self.model), timer=self.timer, history_heatmap=True)
def __init__(self, trainer, is_active=True, watch_parameters=False): super().__init__(trainer, is_active=is_active, watch_parameters=watch_parameters) self.autocorrelation = Autocorrelation( n_lags=self.timer.batches_in_epoch, with_autocorrelation=isinstance(trainer.train_loader.dataset, MNISTSmall)) named_param_shapes = iter( (name, param.shape) for name, param in named_parameters_binary(trainer.model)) self.graph_mcmc = GraphMCMC(named_param_shapes=named_param_shapes, timer=self.timer, history_heatmap=True)
def train_batch(self, images, labels): return self.train_batch_mcmc(images, labels, named_params=named_parameters_binary(self.model))