code: def __init__(
      self,
      din: tp.Optional[int] = None,
      dout: int = 10,
      rngs: tp.Optional[nnx.Rngs] = None,
  ):
      self.linear = Linear(din=din, dout=dout, rngs=rngs)
      self.bn = BatchNorm(
          din=dout if din is not None else None, rngs=rngs
      )
      self.dropout = Dropout(0.5)
  
imports: import typing
  import jax
  import jax.numpy
  from jax import random
  from flax.experimental import nnx
label_desc: Use image node_id 1 to create a new Block object from inherited base classes: nnx with example: obj = Block(din, dout, rngs)