def _update(self, epoch, validation_losses):
    validation_losses = tf.convert_to_tensor(validation_losses)
    eta = eta_scheduler(epoch)
    self.weights.assign(self.weights * tf.math.exp(eta * validation_losses))
    for i in range(self.num_representations):
      tf.summary.scalar(
          f"representations/weight/{self.representation_names[i]}",
          self.weights[i],
          step=epoch)