class_docstr: Jax Rainbow network for Full Rainbow.
  
  Attributes:
      num_actions: The number of actions the agent can take at any state.
      num_atoms: The number of buckets of the value function distribution.
      noisy: Whether to use noisy networks.
      dueling: Whether to use dueling network architecture.
      distributional: Whether to use distributional RL.
code: def spr_rollout(self, latent, actions, key):
      _, pred_latents = self.transition_model(latent, actions)
      predictions = self.spr_predict(
          pred_latents.reshape(pred_latents.shape[0], -1), key, True
      )
      return predictions
  
imports: import collections
  import functools
  import time
  from typing import Any, Callable, Optional, Tuple
  from dopamine.jax.networks import preprocess_atari_inputs
  from flax import linen
  import gin
  import jax
  from jax import lax
  from jax import random
  from jax.nn import initializers
  import jax.numpy
  import numpy
label_desc: Use image node_id 5 for calling the SPRNetwork obj's underlying member method code with example usage: obj.spr_rollout(latent, actions, key) and returns: predictions