class_docstr: Convolutional Gru unit.
class_docstr_tok: ["Convolutional","Gru","unit","."]
code: def forward(self, h: Tensor, x: Tensor, context: List[Tensor]) -> Tensor:  # type: ignore[override]
      hx = torch.cat([h, x], dim=1)
      z = torch.sigmoid(self.convz(hx) + context[0])
      r = torch.sigmoid(self.convr(hx) + context[1])
      q = torch.tanh(
          self.convq(torch.cat([r * h, x], dim=1)) + context[2]
      )
      h = (1 - z) * h + z * q
      return h
  
imports: from functools import partial
  from typing import Callable, List, Optional, Tuple
  import torch
  import torch.nn
  import torch.nn.functional
  import torchvision.models.optical_flow.raft
  from torch import Tensor
  from torchvision.models._api import register_model, Weights, WeightsEnum
  from torchvision.models._utils import handle_legacy_interface
  from torchvision.models.optical_flow._utils import grid_sample, make_coords_grid, upsample_flow
  from torchvision.models.optical_flow.raft import FlowHead, MotionEncoder, ResidualBlock
  from torchvision.ops import Conv2dNormActivation
  from torchvision.prototype.transforms._presets import StereoMatching
  from torchvision.utils import _log_api_usage_once
label_desc: Use image node_id 1 for calling the ConvGRU obj's underlying member method code with example usage: obj.forward(h, x, context) and returns: h