def create_clone(self, device): self.network_inner = networks.WholeFish(self.input_shape, self.num_classes, self.hparams, weights=self.network.state_dict()).to(device) self.optimizer_inner = torch.optim.Adam( self.network_inner.parameters(), lr=self.hparams["lr"], weight_decay=self.hparams['weight_decay'] ) if self.optimizer_inner_state is not None: self.optimizer_inner.load_state_dict(self.optimizer_inner_state)
def __init__(self, input_shape, num_classes, num_domains, hparams): super(Fish, self).__init__(input_shape, num_classes, num_domains, hparams) self.input_shape = input_shape self.num_classes = num_classes self.network = networks.WholeFish(input_shape, num_classes, hparams) self.optimizer = torch.optim.Adam( self.network.parameters(), lr=self.hparams["lr"], weight_decay=self.hparams['weight_decay']) self.optimizer_inner_state = None