Frechet Inception Distance Save Abandoned

CPU/GPU/TPU implementation of the Fréchet Inception Distance

Project README

Fréchet Inception Distance

Tensorflow implementation of the "Fréchet Inception Distance" (FID) between two image distributions, along with a numpy interface. The FID can be used to evaluate generative models by calculating the FID between real and fake data distributions (lower is better).

Major Dependencies

  • tensorflow==1.14 or (tensorflow==1.15 and tensorflow-gan==1.0.0.dev0) or (tensorflow>=2 and tensorflow-gan>=2.0.0)

Features

  • Fast, easy-to-use and memory-efficient
  • No prior knowledge about Tensorflow is necessary if your are using CPUs or GPUs
  • Makes use of TF-GAN
  • Downloads InceptionV1 automatically
  • Compatible with both Python 2 and Python 3

Usage

  • If you are working with GPUs, use fid.py; if you are working with TPUs, use fid_tpu.py and pass a Tensorflow Session and a TPUStrategy as additional arguments.
  • Call get_fid(images1, images2), where images1, images2 are numpy arrays with values ranging from 0 to 255 and shape in the form [N, 3, HEIGHT, WIDTH] where N, HEIGHT and WIDTH can be arbitrary. dtype of the images is recommended to be np.uint8 to save CPU memory.
  • A smaller BATCH_SIZE reduces GPU/TPU memory usage, but at the cost of a slight slowdown.
  • If you want to compute a general "Fréchet Classifier Distance" with activations (e.g., outputs of the last pooling layer) act1 and act2 from another classifier, call activations2distance(act1, act2). act1 and act2 can be numpy arrays of a same arbitrary shape [N, d].

Examples

GPU: Example In Colab

TPU and TF1: Example In Colab

TPU and TF2: Example In Colab

Open Source Agenda is not affiliated with "Frechet Inception Distance" Project. README Source: tsc2017/Frechet-Inception-Distance
Stars
79
Open Issues
1
Last Commit
3 years ago

Open Source Agenda Badge

Open Source Agenda Rating