code: def __init__(
      self,
      *,
      din: tp.Optional[int] = None,
      dout: int,
      rngs: tp.Optional[nnx.Rngs] = None,
  ):
      self.dout = dout
      if din is not None:
          if rngs is None:
              raise ValueError(
                  "rngs must be provided if din is provided"
              )
          self.init_variables(din, rngs)
  
imports: import typing
  import jax
  import jax.numpy
  from jax import random
  from flax.experimental import nnx
label_desc: Use image node_id 4 to create a new Linear object from inherited base classes: nnx with example: obj = Linear()