class_docstr: Stochastic Adversarial Video Prediction for RL pipeline.
code: def video_extra_loss(
      self,
      frames_predicted,
      frames_target,
      internal_states,
      video_features,
  ):
      if not self.is_training:
          return 0.0
  
      latent_means, latent_stds = video_features
      true_frames, gen_frames = frames_target, frames_predicted
  
      loss = super(NextFrameSavpRl, self).get_extra_loss(
          latent_means=latent_means,
          latent_stds=latent_stds,
          true_frames=true_frames,
          gen_frames=gen_frames,
      )
      return loss
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import numbers
  import numpy
  from tensor2tensor.layers import common_layers
  from tensor2tensor.layers import common_video
  from tensor2tensor.models.video import savp_params
  from tensor2tensor.models.video import sv2p
  from tensor2tensor.utils import contrib
  from tensor2tensor.utils import registry
  from tensor2tensor.utils import update_ops_hook
  import tensorflow.compat.v1
  from tensorflow.compat.v1 import estimator
  import tensorflow_gan
label_desc: Use image node_id 2 for calling the NextFrameSavpRl obj's underlying member method code with example usage: obj.video_extra_loss(frames_predicted, frames_target, internal_states, video_features) and returns: loss, int