# other randseed = 0 gce_path = './pretrained_models/mnist_38_gce' retrain_gce = False # train explanatory VAE from scratch save_gce = False # save/overwrite pretrained explanatory VAE at gce_path # --- initialize --- device = torch.device('cuda' if torch.cuda.is_available() else 'cpu') if randseed is not None: np.random.seed(randseed) torch.manual_seed(randseed) ylabels = range(0, len(data_classes)) # --- load data --- from load_mnist import load_mnist_classSelect X, Y, tridx = load_mnist_classSelect('train', data_classes, ylabels) vaX, vaY, vaidx = load_mnist_classSelect('val', data_classes, ylabels) ntrain, nrow, ncol, c_dim = X.shape x_dim = nrow * ncol # --- load classifier --- from models.CNN_classifier import CNN classifier = CNN(len(data_classes)).to(device) checkpoint = torch.load('%s/model.pt' % classifier_path, map_location=device) classifier.load_state_dict(checkpoint['model_state_dict_classifier']) # --- train/load GCE --- from models.CVAE import Decoder, Encoder if retrain_gce: encoder = Encoder(K + L, c_dim, x_dim).to(device) decoder = Decoder(K + L, c_dim, x_dim).to(device)
Nbeta = 100 lam = 0.05 batch_size = 64 lr = 5e-4 # other randseed = 0 # --- initialize --- device = torch.device('cuda' if torch.cuda.is_available() else 'cpu') if randseed is not None: np.random.seed(randseed) torch.manual_seed(randseed) # --- load data --- from load_mnist import load_mnist_classSelect X, Y, tridx = load_mnist_classSelect('train', data_classes, range(0,len(data_classes))) vaX, vaY, vaidx = load_mnist_classSelect('val', data_classes, range(0,len(data_classes))) ntrain, nrow, ncol, c_dim = X.shape x_dim = nrow*ncol # --- load classifier --- from models.CNN_classifier import CNN classifier = CNN(len(data_classes)).to(device) checkpoint = torch.load('%s/model.pt' % classifier_path, map_location=device) classifier.load_state_dict(checkpoint['model_state_dict_classifier']) # --- initialize VAE --- from models.CVAE import Decoder, Encoder encoder = Encoder(K+L, c_dim, x_dim).to(device)