class_docstr: We'll store weight_qparams for all the weights (weight_ih and weight_hh),
  we need to pass in a `weight_qparams_dict` that maps from weight name,
  e.g. weight_ih, to the weight_qparams for that weight
class_docstr_tok: ["We","'ll","store","weight_qparams","for","all","the","weights","(","weight_ih","and","weight_hh",")",",","we","need","to","pass","in","a","`","weight_qparams_dict","`","that","maps","from","weight","name",",","e.g",".","weight_ih",",","to","the","weight_qparams","for","that","weight"]
code: def __init__(
      self,
      input_size: int,
      hidden_size: int,
      bias: bool = True,
      device=None,
      dtype=None,
      weight_qparams_dict: Optional[Dict[str, Any]] = None,
  ) -> None:
      factory_kwargs = {
          "device": device,
          "dtype": dtype,
          "weight_qparams_dict": weight_qparams_dict,
      }
      super().__init__(
          input_size, hidden_size, bias, num_chunks=3, **factory_kwargs
      )
  
imports: import torch
  import torch.nn
  from torch import Tensor
  from .utils import _quantize_and_dequantize_weight
  from .utils import _quantize_weight
  from typing import Optional, Dict, Any, Tuple
  from torch import _VF
  from torch.nn.utils.rnn import PackedSequence
label_desc: Use image node_id 1 to create a new GRUCell object from inherited base classes: RNNCellBase with example: obj = GRUCell(input_size, hidden_size, bias, device, dtype, weight_qparams_dict)