def calculate_fid(images, batch_size, sw, epoch):
    # load model
    from fid import FID
    fid_model = FID()

    # calculate statistics
    fake_mu, fake_sigma = fid_model.calculate_statistics(images, batch_size)

    # calculate FID
    fid_odd = fid_model.calculate_fid(fake_mu, fake_sigma, TARGET_FID[0], TARGET_FID[1])
    fid_real = fid_model.calculate_fid(fake_mu, fake_sigma, DATASET_FID[0], DATASET_FID[1])

    # save FID
    sw.add_scalar(f'DCGAN/FID ODD', fid_odd, epoch)
    sw.add_scalar(f'DCGAN/FID Real', fid_real, epoch)

    # clean memory
    del fid_model, images, fake_mu, fake_sigma

    return fid_real
Beispiel #2
0
def calculate_fid(fake_images, sw, epoch, n_class):
    # load model
    from fid import FID
    fid_model = FID()

    # calculate statistics
    fake_mu, fake_sigma = fid_model.calculate_statistics(fake_images, 32)

    # calculate FID
    fid_odd = fid_model.calculate_fid(fake_mu, fake_sigma, TARGET_FID[0],
                                      TARGET_FID[1])
    fid_real = fid_model.calculate_fid(fake_mu, fake_sigma, DATASET_FID[0],
                                       DATASET_FID[1])

    # save FID
    sw.add_scalar(f'GAN {n_class}/FID ODD', fid_odd, epoch)
    sw.add_scalar(f'GAN {n_class}/FID Real', fid_real, epoch)

    # clean memory
    del fid_model, fake_images, fake_mu, fake_sigma

    return fid_real