def __init__(self, *args, **kwargs):
    super().__init__(*args, **kwargs)
    # Weights of each representation. Each selection is a sample drawn
    # proportionally to the weights.
    # TODO(csferng): Store the weights in logit space.
    self.weights = tf.Variable(tf.ones(self.num_representations))
    self.current_selection.assign(self._select())