View source on GitHub

Create a random variable for PixelCNN.

See PixelCNN for more details.


Original Docstring for Distribution

Construct Pixel CNN++ distribution.

image_shape 3D TensorShape or tuple for the [height, width, channels] dimensions of the image.
conditional_shape TensorShape or tuple for the shape of the conditional input, or None if there is no conditional input.
num_resnet int, the number of layers (shown in Figure 2 of [2]) within each highest-level block of Figure 2 of [1].
num_hierarchies int, the number of hightest-level blocks (separated by expansions/contractions of dimensions in Figure 2 of [1].)
num_filters int, the number of convolutional filters.
num_logistic_mix int, number of components in the logistic mixture distribution.
receptive_field_dims tuple, height and width in pixels of the receptive field of the convolutional layers above and to the left of a given pixel. The width (second element of the tuple) should be odd. Figure 1 (middle) of [2] shows a receptive field of (3, 5) (the row containing the current pixel is included in the height). The default of (3, 3) was used to produce the results in [1].
dropout_p float, the dropout probability. Should be between 0 and 1.
resnet_activation string, the type of activation to use in the resnet blocks. May be 'concat_elu', 'elu', or 'relu'.
use_weight_norm bool, if True then use weight normalization (works only in Eager mode).
use_data_init bool, if True then use data-dependent initialization (has no effect if use_weight_norm is False).
high int, the maximum value of the input data (255 for an 8-bit image).
low int, the minimum value of the input data.
dtype Data type of the Distribution.
name string, the name of the Distribution.