class_docstr: Glue together encoder transform, entropy model and decoder transform
code: def compute_rate(
      self, scenes_likelihoods: Tensor, per_frame: bool = False
  ) -> Tensor:
      if per_frame:
          bits = (
              scenes_likelihoods.log().sum(dim=(1, 2, 3))
          ) / -math.log(2.0)
      else:
          bits = (scenes_likelihoods.log().sum()) / -math.log(2.0)
  
      return bits
  
imports: import itertools
  import math
  from typing import Generator, List, NamedTuple, Optional, Sequence, Tuple, Union
  import torch
  import torch.nn
  import utils.memoize
  from datamodules.video_data_api import Scenes, VideoData
  from neural.entropy_model import PreviousLatent, VCTEntropyModel
  from torch import Tensor
label_desc: Use image node_id 12 for calling the VCTPipeline obj's underlying member method code with example usage: obj.compute_rate(scenes_likelihoods, per_frame) and returns: bits