class_docstr: GRU with an identity initialization.
class_docstr_tok: ["GRU","with","an","identity","initialization","."]
code: def __init__(self, hidden_size: int, name: Optional[str] = None):
      def b_init(unused_size: Sequence[int], dtype) -> jnp.ndarray:
          """Initializes the biases so the GRU ignores the state and acts as a tanh."""
          return jnp.concatenate(
              [
                  +2 * jnp.ones([hidden_size], dtype=dtype),
                  -2 * jnp.ones([hidden_size], dtype=dtype),
                  jnp.zeros([hidden_size], dtype=dtype),
              ]
          )
  
      super().__init__(
          hidden_size=hidden_size, b_init=b_init, name=name
      )
  
imports: import dataclasses
  from typing import Callable, NamedTuple, Optional, Sequence, Tuple, Union
  from acme import specs
  from acme.agents.jax.mpo import types
  from acme.jax import networks
  from acme.jax import utils
  import chex
  import haiku
  import haiku.initializers
  import jax
  import jax.numpy
  import numpy
  import tensorflow_probability.substrates.jax
label_desc: Use image node_id 1 to create a new GRU object from inherited base classes: hk with example: obj = GRU(hidden_size, name)