示例#1
0
# %%
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()
示例#2
0
#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
示例#3
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)
示例#4
0
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
示例#5
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