Exemple #1
0
from torchvision.transforms import ToPILImage
from torchvision.utils import make_grid
from lpips import LPIPS
ImDist = LPIPS(net="squeeze")
rootdir = r"E:\OneDrive - Washington University in St. Louis\Hessian_summary\App\Inversion"
os.makedirs(rootdir, exist_ok=True)
#%%
data = np.load(
    r"E:\OneDrive - Washington University in St. Louis\Hessian_summary\BigBiGAN\H_avg_BigBiGAN.npz"
)
evc, eva = data["evc_avg"], data["eva_avg"],
evc_tsr = torch.from_numpy(evc).cuda().float()
eva_tsr = torch.from_numpy(eva).cuda().float()
#%%
from torch.optim import Adam
BBGAN = loadBigBiGAN()
G = BigBiGAN_wrapper(BBGAN)
#%%
refvec = torch.randn(1, 120).cuda()
refimg = G.visualize(refvec)


#%%
def L1loss(im1, im2):
    return (im1 - im2).abs().mean(axis=[1, 2, 3])


fitvec = torch.randn(1, 120).cuda()
fitvec.requires_grad_(True)
optimizer = Adam(
    [fitvec],
Exemple #2
0
from time import time
from os.path import join
import os
import sys
import lpips
from GAN_hessian_compute import hessian_compute, get_full_hessian
from torchvision.transforms import ToPILImage
from torchvision.utils import make_grid
from GAN_utils import loadBigGAN, loadStyleGAN2, BigGAN_wrapper, StyleGAN2_wrapper, loadPGGAN, PGGAN_wrapper, loadBigBiGAN, BigBiGAN_wrapper
from hessian_analysis_tools import plot_spectra, compute_hess_corr
from lpips import LPIPS
ImDist = LPIPS(net="squeeze")
datadir = r"E:\OneDrive - Washington University in St. Louis\HessNetArchit\BigBiGAN"
os.makedirs(datadir, exist_ok=True)
#%%
BBGAN = loadBigBiGAN()
SD = BBGAN.state_dict()
#%%
shuffled_SD = {}
for name, Weight in SD.items():
    idx = torch.randperm(Weight.numel())
    W_shuf = Weight.view(-1)[idx].view(Weight.shape)
    shuffled_SD[name] = W_shuf
#%%
torch.save(shuffled_SD, join(datadir, "BigBiGAN_shuffle.pt"))
# print(name, Weight.shape, Weight.mean().item(), Weight.std().item())
#%%
BBGAN_sf = loadBigBiGAN()
BBGAN_sf.load_state_dict(torch.load(join(datadir, "BigBiGAN_shuffle.pt")))
G_sf = BigBiGAN_wrapper(BBGAN_sf)
#%%
Exemple #3
0
    refvecs = np.vstack((EmbedMat[:, np.random.randint(0, 1000, 10)],
                         0.5 * np.random.randn(128, 10))).T
    vis_eigen_action(tanvec,
                     refvecs,
                     figdir=figdir,
                     page_B=50,
                     G=BG,
                     maxdist=2,
                     rown=5,
                     transpose=False,
                     namestr="eig_clas%d" % eigi)

    #%% BigBiGAN on ImageNet
    from GAN_utils import BigBiGAN_wrapper, loadBigBiGAN
    from torchvision.transforms import ToPILImage
    BBGAN = loadBigBiGAN().cuda()
    BBG = BigBiGAN_wrapper(BBGAN)
    # EmbedMat = BG.BigGAN.embeddings.weight.cpu().numpy()
    #%%
    from GAN_hessian_compute import hessian_compute, get_full_hessian
    from hessian_analysis_tools import scan_hess_npz, compute_hess_corr, plot_spectra
    npzdir = r"E:\OneDrive - Washington University in St. Louis\HessGANCmp\BigBiGAN"
    eigval_col, eigvec_col, feat_col, meta = scan_hess_npz(
        npzdir,
        npzpat="Hess_norm9_(\d*).npz",
        evakey='eigvals',
        evckey='eigvects',
        featkey="vect")
    feat_arr = np.array(feat_col).squeeze()
    #%%
    eigid = 20