feats=feat_col) #%% fig = plot_spectra( eva_col, figdir=figdir, titstr="DCGAN", ) #%% corr_mat_log, corr_mat_lin = compute_hess_corr(eva_col, evc_col, figdir=figdir, use_cuda=False) # without cuda 2:12 mins, with cuda 6:55 #%% fig1, fig2 = plot_consistentcy_mat(corr_mat_log, corr_mat_lin, figdir=figdir, titstr="DCGAN") fig11, fig22 = plot_consistency_hist(corr_mat_log, corr_mat_lin, figdir=figdir, titstr="DCGAN") #%% fig3 = plot_consistency_example( eva_col, evc_col, figdir=figdir, nsamp=5, titstr="DCGAN", )
eigval_col=eva_ctrl, ) # compute and plot the correlation between hessian at different points corr_mat_log_ctrl, corr_mat_lin_ctrl = compute_hess_corr(eva_ctrl, evc_ctrl, figdir=figdir, use_cuda=True, savelabel=modelnm) fig1, fig2 = plot_consistentcy_mat(corr_mat_log_ctrl, corr_mat_lin_ctrl, figdir=figdir, titstr="%s" % modelnm, savelabel=modelnm) fig11, fig22 = plot_consistency_hist(corr_mat_log_ctrl, corr_mat_lin_ctrl, figdir=figdir, titstr="%s" % modelnm, savelabel=modelnm) fig3 = plot_consistency_example(eva_ctrl, evc_ctrl, figdir=figdir, nsamp=5, titstr="%s" % modelnm, savelabel=modelnm) #%% with np.load(join(figdir, "spectra_col_%s.npz" % modelnm)) as data: eva_ctrl = data["eigval_col"] with np.load(join(realfigdir, "spectra_col_face256_BP.npz")) as data: eva_real = data["eigval_col"] fig0 = plot_spectra(eva_real, savename="StyleGAN_shuffle_spectrum_cmp",
#% figdir = r"E:\OneDrive - Washington University in St. Louis\Hessian_summary\StyleGAN2_wspace" os.makedirs(figdir, exist_ok=True) # Load the Hessian NPZ eva_col, evc_col, feat_col, meta = scan_hess_npz(savedir, "Hess_BP_(\d*).npz", featkey="feat") # compute the Mean Hessian and save H_avg, eva_avg, evc_avg = average_H(eva_col, evc_col, ) np.savez(join(figdir, "H_avg_%s.npz"%modelnm), H_avg=H_avg, eva_avg=eva_avg, evc_avg=evc_avg, feats=feat_col) # compute and plot spectra fig0 = plot_spectra(eigval_col=eva_col, savename="%s_spectrum"%modelnm, figdir=figdir) np.savez(join(figdir, "spectra_col_%s.npz"%modelnm), eigval_col=eva_col, ) # compute and plot the correlation between hessian at different points corr_mat_log, corr_mat_lin = compute_hess_corr(eva_col, evc_col, figdir=figdir, use_cuda=False, savelabel=modelnm) corr_mat_vec = compute_vector_hess_corr(eva_col, evc_col, figdir=figdir, use_cuda=False, savelabel=modelnm) fig1, fig2 = plot_consistentcy_mat(corr_mat_log, corr_mat_lin, figdir=figdir, titstr="%s"%modelnm, savelabel=modelnm) fig11, fig22 = plot_consistency_hist(corr_mat_log, corr_mat_lin, figdir=figdir, titstr="%s"%modelnm, savelabel=modelnm) fig3 = plot_consistency_example(eva_col, evc_col, figdir=figdir, nsamp=5, titstr="%s"%modelnm, savelabel=modelnm) fig3 = plot_consistency_example(eva_col, evc_col, figdir=figdir, nsamp=3, titstr="%s"%modelnm, savelabel=modelnm) #%% "stylegan2-cat-config-f" modelname = "stylegan2-cat-config-f" modelnm = "stylegan2-cat-config-f"+"_wspace" modelsnm = "Cat256" SGAN = loadStyleGAN2(modelname+".pt", size=256, channel_multiplier=2) G = StyleGAN2_wrapper(SGAN) G.use_wspace(True) savedir = join(rootdir, modelname+"_wspace") os.makedirs(savedir, exist_ok=True) #%% img = G.visualize(G.StyleGAN.get_latent(torch.randn(5, 512).cuda())) ToPILImage()(make_grid(img).cpu()).show()
eigval_col=eva_ctrl, ) # compute and plot the correlation between hessian at different points corr_mat_log_ctrl, corr_mat_lin_ctrl = compute_hess_corr(eva_ctrl, evc_ctrl, figdir=figdir, use_cuda=True, savelabel=label) fig1, fig2 = plot_consistentcy_mat(corr_mat_log_ctrl, corr_mat_lin_ctrl, figdir=figdir, titstr="%s" % label, savelabel=label) fig11, fig22 = plot_consistency_hist(corr_mat_log_ctrl, corr_mat_lin_ctrl, figdir=figdir, titstr="%s" % label, savelabel=label) fig3 = plot_consistency_example(eva_ctrl, evc_ctrl, figdir=figdir, nsamp=5, titstr="%s" % label, savelabel=label) fig3 = plot_consistency_example(eva_ctrl, evc_ctrl, figdir=figdir, nsamp=3, titstr="%s" % label, savelabel=label)
H_avg, eva_avg, evc_avg = average_H(eva_ctrl, evc_ctrl) np.savez(join(figdir, "H_avg_%s.npz"%modelnm), H_avg=H_avg, eva_avg=eva_avg, evc_avg=evc_avg, feats=feat_ctrl) # compute and plot spectra fig0 = plot_spectra(eigval_col=eva_ctrl, savename="%s_spectrum"%modelnm, figdir=figdir) fig0 = plot_spectra(eigval_col=eva_ctrl, savename="%s_spectrum_med"%modelnm, figdir=figdir, median=True) np.savez(join(figdir, "spectra_col_%s.npz"%modelnm), eigval_col=eva_ctrl, ) # compute and plot the correlation between hessian at different points """Note the spectra of randinitd BigBiGAN doesn't make sense we use randomly initialized one instead""" #%% corr_mat_log_ctrl, corr_mat_lin_ctrl = compute_hess_corr(eva_ctrl+1E-7, evc_ctrl, figdir=figdir, use_cuda=True, savelabel=modelnm+"shift1E-7") corr_mat_vec_ctrl = compute_vector_hess_corr(eva_ctrl+1E-7, evc_ctrl, figdir=figdir, use_cuda=True, savelabel=modelnm+"shift1E-7") fig1, fig2 = plot_consistentcy_mat(corr_mat_log_ctrl, corr_mat_lin_ctrl, figdir=figdir, titstr="%s"%modelnm+"shift1E-7", savelabel=modelnm) fig11, fig22 = plot_consistency_hist(corr_mat_log_ctrl, corr_mat_lin_ctrl, figdir=figdir, titstr="%s"%modelnm+"shift1E-7", savelabel=modelnm) fig3 = plot_consistency_example(eva_ctrl+1E-7, evc_ctrl, figdir=figdir, nsamp=5, titstr="%s"%modelnm+"shift1E-7", savelabel=modelnm) #%% with np.load(join(figdir, "spectra_col_%s.npz"%modelnm)) as data: eva_ctrl = data["eigval_col"] with np.load(join(realfigdir, "spectra_col.npz")) as data: eva_real = data["eigval_col"] fig0 = plot_spectra(eva_real, savename="BigBiGAN_randinit_spectrum_cmp", figdir=figdir, abs=True, titstr="BigBiGAN cmp", label="real", fig=None) fig0 = plot_spectra(eva_ctrl, savename="BigBiGAN_randinit_spectrum_cmp", figdir=figdir, abs=True, titstr="BigBiGAN cmp", label="randinitd", fig=fig0) #%% with np.load(join(realfigdir, "Hess__corr_mat.npz")) as data: corr_mat_log, corr_mat_lin = data["corr_mat_log"], data["corr_mat_lin"] fig11, fig22 = plot_consistency_hist(corr_mat_log, corr_mat_lin, figdir=figdir, titstr="%s"%"real", savelabel="BigBiGAN_randinit_cmp")
#%% Comparing Consistency? modelnm = "ffhq-512-avg-tpurun1" modelsnm = "Face512" modelnm = "ffhq-256-config-e-003810" modelsnm = "Face256" for modelnm, modelsnm in zip(modelnms, shortnms): label = modelnm + "_fix" data = np.load(join(summaryroot, label, "Hess_%s_corr_mat.npz" % label)) corr_mat_log, corr_mat_lin = data['corr_mat_log'], data['corr_mat_lin'] label = modelnm + "_fix_ctrl" data = np.load(join(summaryroot, label, "Hess_%s_corr_mat.npz" % label)) corr_mat_log_ctrl, corr_mat_lin_ctrl = data['corr_mat_log'], data[ 'corr_mat_lin'] fig11, fig22 = plot_consistency_hist( corr_mat_log, corr_mat_lin, figdir=summaryroot, label="fix", savelabel="SG2_%s_shuffle_cmp_Zspace" % modelsnm) fig11, fig22 = plot_consistency_hist( corr_mat_log_ctrl, corr_mat_lin_ctrl, figdir=summaryroot, label="fix_shuffle", savelabel="SG2_%s_shuffle_cmp_Zspace" % modelsnm, figs=(fig11, fig22)) label = modelnm + "_W_fix" data = np.load(join(summaryroot, label, "Hess_%s_corr_mat.npz" % label)) corr_mat_log, corr_mat_lin = data['corr_mat_log'], data['corr_mat_lin'] label = modelnm + "_W_fix_ctrl" data = np.load(join(summaryroot, label, "Hess_%s_corr_mat.npz" % label))