Defined in tensorflow/contrib/gan/python/features/python/

Queue storing input values and returning random previously stored ones.

Every time the returned output_value is evaluated, input_value is evaluated and its value either directly returned (with 1-pooling_probability) or stored in the pool and a random one of the samples currently in the pool is popped and returned. As long as the pool in not fully filled, the input_value is always directly returned, as well as stored in the pool. Note during inference / testing, it may be appropriate to set pool_size = 0 or pooling_probability = 0.


  • input_values: An arbitrarily nested structure of tf.Tensors, from which to read values to be pooled.
  • pool_size: An integer specifying the maximum size of the pool. Defaults to 50.
  • pooling_probability: A float Tensor specifying the probability of getting a value from the pool, as opposed to just the current input.
  • name: A string prefix for the name scope for all tensorflow ops.


A nested structure of Tensor objects with the same structure as input_values. With the given probability, the Tensor values are either the same as in input_values or a randomly chosen sample that was previously inserted in the pool.


  • ValueError: If pool_size is negative.