interval_stop = (center + args.FID_radius + np.abs(min_label_before_shift)) / max_label_after_shift indx_real = np.where((real_labels>=interval_start)*(real_labels<=interval_stop)==True)[0] np.random.shuffle(indx_real) real_images_curr = real_images[indx_real] num_realimgs_over_centers[i] = len(real_images_curr) indx_fake = np.where((fake_labels_assigned>=interval_start)*(fake_labels_assigned<=interval_stop)==True)[0] np.random.shuffle(indx_fake) fake_images_curr = fake_images[indx_fake] fake_labels_assigned_curr = fake_labels_assigned[indx_fake] ## FID FID_over_centers[i] = cal_FID(PreNetFID, real_images_curr, fake_images_curr, batch_size = 500, resize = None) ## Entropy of predicted class labels predicted_class_labels = predict_class_labels(PreNetDiversity, fake_images_curr, batch_size=500) entropies_over_centers[i] = compute_entropy(predicted_class_labels) ## Label score labelscores_over_centers[i], _ = cal_labelscore(PreNetLS, fake_images_curr, fake_labels_assigned_curr, min_label_before_shift=min_label_before_shift, max_label_after_shift=max_label_after_shift, batch_size = 200, resize = None) ## print print("\n [{}/{}] Center:{}; Real:{}; Fake:{}; FID:{}; LS:{}; ET:{}.".format(i+1, len(centers_loc), center, len(real_images_curr), len(fake_images_curr), FID_over_centers[i], labelscores_over_centers[i], entropies_over_centers[i])) # end for i # average over all centers print("\n {} SFID: {}({}); min/max: {}/{}.".format(args.GAN, np.mean(FID_over_centers), np.std(FID_over_centers), np.min(FID_over_centers), np.max(FID_over_centers))) print("\n {} LS over centers: {}({}); min/max: {}/{}.".format(args.GAN, np.mean(labelscores_over_centers), np.std(labelscores_over_centers), np.min(labelscores_over_centers), np.max(labelscores_over_centers))) print("\n {} entropy over centers: {}({}); min/max: {}/{}.".format(args.GAN, np.mean(entropies_over_centers), np.std(entropies_over_centers), np.min(entropies_over_centers), np.max(entropies_over_centers))) # dump FID versus number of samples (for each center) to npy if args.GAN == "cGAN": dump_fid_ls_entropy_over_centers_filename = wd + "/cGAN_nclass_{}_fid_ls_entropy_over_centers".format(args.cGAN_num_classes) else: if args.kernel_sigma>1e-30: dump_fid_ls_entropy_over_centers_filename = wd + "/CcGAN_{}_fid_ls_entropy_over_centers".format(args.threshold_type) else:
fake_images_curr, batch_size=200, resize=None) # Entropy of predicted class labels predicted_class_labels = predict_class_labels( PreNetDiversity, fake_images_curr, batch_size=200, num_workers=args.num_workers) entropies_over_centers[i] = compute_entropy(predicted_class_labels) # Label score labelscores_over_centers[i], _ = cal_labelscore( PreNetLS, fake_images_curr, fake_labels_assigned_curr, min_label_before_shift=0, max_label_after_shift=args.max_label, batch_size=200, resize=None, num_workers=args.num_workers) print("\n [{}/{}] Center:{}; Real:{}; Fake:{}; FID:{}; LS:{}; ET:{}.". format(i + 1, len(centers_loc), center, len(real_images_curr), len(fake_images_curr), FID_over_centers[i], labelscores_over_centers[i], entropies_over_centers[i])) # end for i # average over all centers print("\n {} SFID: {}({}); min/max: {}/{}.".format( args.GAN_arch, np.mean(FID_over_centers), np.std(FID_over_centers), np.min(FID_over_centers), np.max(FID_over_centers))) print("\n {} LS over centers: {}({}); min/max: {}/{}.".format(