# %% plt.scatter(X0[:, 0], X0[:, 1], s=5, c=colors) # %% blocks = sum( [[StructuredAffineFlow(2), PReLUFlow(2)] for _ in range(5)] + [[StructuredAffineFlow(2)]], []) # %% flow = NormalizingFlow( *blocks, base_dist=base_dist, ) opt = optim.Adam(flow.parameters(), lr=5e-4) # %% count_parameters(flow) # %% writer = SummaryWriter(f"/workspace/sandbox/tensorboard_logs/{now_str()}") best_loss = torch.Tensor([float("+inf")]) attempts = 0 for it in trange(int(1e5)): opt.zero_grad() loss = -flow.final_density.log_prob(x_samples).mean()
#blocks = sum( # [[AffineLUFlow(2), PReLUFlow(2), BatchNormFlow(2)] for _ in range(5)] + # [[AffineLUFlow(2)]], #[]) blocks = sum( [[StructuredAffineFlow(2), PReLUFlow(2), BatchNormFlow(2)] for _ in range(5)] + [[StructuredAffineFlow(2)]], []) flow = NormalizingFlow( *blocks, base_dist=base_dist, ) opt = optim.Adam(flow.parameters(), lr=1e-2) # %% count_parameters(flow) # %% n_epochs = 2000 bs = 512 clip_grad = 1e6 # %% writer = SummaryWriter(f"../tensorboard_logs/{now_str()}") best_loss = torch.Tensor([float("+inf")]) attempts = 0
elif args.POTENTIAL == 'POT_3': target_density = pot_3 elif args.POTENTIAL == 'POT_4': target_density = pot_4 else: raise ValueError("Invalid potential function option passed") plot_pot_func(target_density) plt.savefig(pjoin(OUT_DIR, 'target_density.png')) plt.close() model = NormalizingFlow(2, args.N_FLOWS) # RMSprop is what they used in renzende et al opt = torch.optim.RMSprop(params=model.parameters(), lr=args.LR, momentum=args.MOMENTUM) scheduler = ReduceLROnPlateau(opt, 'min', patience=1000) losses = [] for iter_ in range(args.N_ITERS): if iter_ % 100 == 0: print("Iteration {}".format(iter_)) samples = Variable(random_normal_samples(args.BATCH_SIZE)) z_k, sum_log_det = model(samples) log_p_x = target_density(z_k)
colors[idx_3] = 3 # %% plt.scatter(X0[:, 0], X0[:, 1], s=5, c=colors) # %% blocks = sum( [[StructuredAffineFlow(2), PReLUFlow(2)] for _ in range(5)] + [[StructuredAffineFlow(2)]], []) flow = NormalizingFlow( *blocks, base_dist=base_dist, ) opt = optim.Adam(flow.parameters(), lr=2e-3) # %% count_parameters(flow) # %% n_epochs = 50000 bs = 512 # %% writer = SummaryWriter(f"./tensorboard_logs/{now_str()}") best_loss = torch.Tensor([float("+inf")]) attempts = 0
# %% plt.scatter(X0[:, 0], X0[:, 1], s=5, c=colors) # %% blocks = sum( [[StructuredAffineFlow(2), PReLUFlow(2), BatchNormFlow(2)] for _ in range(20)] + [[StructuredAffineFlow(2)]], []) # %% flow = NormalizingFlow( *blocks, base_dist=base_dist, ) opt = optim.Adam(flow.parameters(), lr=1e-2) # %% count_parameters(flow) # %% n_epochs = 150 bs = 64 # %% writer = SummaryWriter(f"../tensorboard_logs/{now_str()}") best_loss = torch.Tensor([float("+inf")]) attempts = 0