flow.sample(int(1e6), batch_size=int(1e5))) axes[2].hist2d(samples[:, 0], samples[:, 1], range=bounds, bins=512, cmap=cmap, rasterized=False) axes[2].set_xlim(bounds[0]) axes[2].set_ylim(bounds[1]) axes[2].set_xticks([]) axes[2].set_yticks([]) plt.tight_layout() path = os.path.join( cutils.get_output_root(), '{}_{}_{}.png'.format(args.dataset_name, args.base_transform_type, step + 1)) plt.savefig(path, dpi=300) writer.add_figure(tag='viz', figure=figure, global_step=step) plt.close() if (step + 1) % args.save_interval == 0: path = os.path.join(cutils.get_checkpoint_root(), '{}.t'.format(args.dataset_name)) torch.save(flow.state_dict(), path) path = os.path.join(cutils.get_checkpoint_root(), '{}-{}.t'.format(args.dataset_name, timestamp)) torch.save(flow.state_dict(), path)
axes[1].set_xlim(bounds[0]) axes[1].set_ylim(bounds[1]) axes[1].set_xticks([]) axes[1].set_yticks([]) with torch.no_grad(): samples = utils.tensor2numpy( flow.sample(num_samples=int(1e6), batch_size=int(1e5))) axes[2].hist2d(samples[:, 0], samples[:, 1], range=bounds, bins=512, cmap=cmap, rasterized=False) axes[2].set_xlim(bounds[0]) axes[2].set_ylim(bounds[1]) axes[2].set_xticks([]) axes[2].set_yticks([]) plt.tight_layout() path = os.path.join(cutils.get_output_root(), '{}_{}.png'.format(args.dataset_name, step)) plt.savefig(path, dpi=300) writer.add_figure(tag='viz', figure=figure, global_step=step) plt.close() if (step + 1) % args.save_interval == 0: path = os.path.join(cutils.get_checkpoint_root(), '{}.t'.format(args.dataset_name)) torch.save(flow.state_dict(), path) path = os.path.join(cutils.get_checkpoint_root(), '{}-{}.t'.format(args.dataset_name, timestamp)) torch.save(flow.state_dict(), path)
(log_density_np, utils.tensor2numpy(log_density)) ) vmax = np.exp(log_density_np).max() * 0.7 cmap = cm.magma # plot data figure, axes = plt.subplots(1, 1, figsize=(3.125, 3.125)) axes.hist2d(utils.tensor2numpy(train_dataset.data[:, 0]), utils.tensor2numpy(train_dataset.data[:, 1]), range=bounds, bins=512, rasterized=False, normed=True, cmap='inferno') axes.set_axis_off() plt.subplots_adjust(top=1, bottom=0, right=1, left=0, hspace=0, wspace=0) plt.margins(0,0) axes.xaxis.set_major_locator(ticker.NullLocator()) axes.yaxis.set_major_locator(ticker.NullLocator()) path = os.path.join(cutils.get_output_root(), '{}-data.png'.format(dataset_name)) plt.savefig(path, bbox_inches='tight', pad_inches=0, dpi=320) plt.close() # plot density figure, axes = plt.subplots(1, 1, figsize=(3.125, 3.125)) # axes.pcolormesh(grid_dataset.X, grid_dataset.Y, # np.exp(log_density_np).reshape(grid_dataset.X.shape), # cmap=cmap, vmin=0) axes.imshow(np.exp(log_density_np).reshape(grid_dataset.X.shape), cmap='inferno') axes.set_axis_off() plt.subplots_adjust(top=1, bottom=0, right=1, left=0, hspace=0, wspace=0) plt.margins(0,0) axes.xaxis.set_major_locator(ticker.NullLocator()) axes.yaxis.set_major_locator(ticker.NullLocator()) path = os.path.join(cutils.get_output_root(), '{}-density.png'.format(dataset_name))
# plot data figure, axes = plt.subplots(1, 1, figsize=(3.125, 3.125)) axes.hist2d(utils.tensor2numpy(train_dataset.data[:, 0]), utils.tensor2numpy(train_dataset.data[:, 1]), range=bounds, bins=512, cmap=cmap, rasterized=False, normed=True, vmax=1.1 * vmax) axes.set_axis_off() plt.subplots_adjust(top=1, bottom=0, right=1, left=0, hspace=0, wspace=0) plt.margins(0, 0) axes.xaxis.set_major_locator(ticker.NullLocator()) axes.yaxis.set_major_locator(ticker.NullLocator()) path = os.path.join(cutils.get_output_root(), '{}-data.png'.format(dataset_name)) plt.savefig(path, bbox_inches='tight', pad_inches=0, dpi=320) plt.close() # plot density figure, axes = plt.subplots(1, 1, figsize=(3.125, 3.125)) axes.pcolormesh(grid_dataset.X, grid_dataset.Y, np.exp(log_density_np).reshape(grid_dataset.X.shape), cmap=cmap, vmin=0, vmax=vmax) axes.set_axis_off() plt.subplots_adjust(top=1, bottom=0, right=1, left=0, hspace=0, wspace=0) plt.margins(0, 0)