def get_fid(fakes, model, npz, device, batch_size=1, use_tqdm=True): m1, s1 = npz['mu'], npz['sigma'] fakes = torch.cat(fakes, dim=0) fakes = util.tensor2im(fakes).astype(float) m2, s2 = _compute_statistics_of_ims(fakes, model, batch_size, 2048, device, use_tqdm=use_tqdm) return float(calculate_frechet_distance(m1, s1, m2, s2))
def get_fid_new(reals, fakes, model, device, batch_size=1, use_tqdm=True): reals = torch.cat(reals, dim=0) reals = util.tensor2im(reals).astype(float) fakes = torch.cat(fakes, dim=0) fakes = util.tensor2im(fakes).astype(float) m1, s1 = _compute_statistics_of_ims(reals, model, batch_size, 2048, device, use_tqdm=use_tqdm, median=False) m2, s2 = _compute_statistics_of_ims(fakes, model, batch_size, 2048, device, use_tqdm=use_tqdm, median=False) fid_mean = float(calculate_frechet_distance(m1, s1, m2, s2, median=False)) m1, s1 = _compute_statistics_of_ims(reals, model, batch_size, 2048, device, use_tqdm=use_tqdm, median=True) m2, s2 = _compute_statistics_of_ims(fakes, model, batch_size, 2048, device, use_tqdm=use_tqdm, median=True) fid_median = float(calculate_frechet_distance(m1, s1, m2, s2, median=True)) return fid_mean, fid_median