docstr: Args:
      video_frames: frames of a batch of clips. Expected shape [B, T, C, H, W],
          which is reshaped to [BxT, C, H, W], hyperprior model encoder is applied
          and output is reshaped back to [B, T, <compression_channels>, h, w].
  Returns:
      embeddings: embeddings of shape [B, T, <compression_channels>, h, w], obtained
          by running ScaleHyperprior.image_analysis().
docstr_tok: ["Args",":","video_frames",":","frames","of","a","batch","of","clips",".","Expected","shape","[","B",",","T",",","C",",","H",",","W","]",",","which","is","reshaped","to","[","BxT",",","C",",","H",",","W","]",",","hyperprior","model","encoder","is","applied","and","output","is","reshaped","back","to","[","B",",","T",",","<","compression_channels",">",",","h",",","w","]",".","Returns",":","embeddings",":","embeddings","of","shape","[","B",",","T",",","<","compression_channels",">",",","h",",","w","]",",","obtained","by","running","ScaleHyperprior.image_analysis","(",")","."]
code: def forward(self, video_frames: Tensor) -> Tensor:
      """
      Args:
          video_frames: frames of a batch of clips. Expected shape [B, T, C, H, W],
              which is reshaped to [BxT, C, H, W], hyperprior model encoder is applied
              and output is reshaped back to [B, T, <compression_channels>, h, w].
      Returns:
          embeddings: embeddings of shape [B, T, <compression_channels>, h, w], obtained
              by running ScaleHyperprior.image_analysis().
      """
      assert (
          video_frames.dim() == 5
      ), f"Expected [B, T, C, H, W] got {video_frames.shape}"
      embeddings = self.transforms(
          video_frames.reshape(-1, *video_frames.shape[2:])
      )
      return embeddings.reshape(
          *video_frames.shape[:2], *embeddings.shape[1:]
      )
  
imports: from typing import List, Optional
  import torch
  import torch.nn
  from compressai.layers import GDN, AttentionBlock
  from neural.layers_utils import make_conv, make_deconv
  from torch import Tensor
label_desc: Use image node_id 4 for calling the ConvGDNAnalysis obj's underlying member method code with example usage: obj.forward(video_frames) and returns: embeddings