class_docstr: Generates variable seeds upon each call to a RNG-using function.
  
  In Keras, all RNG-using methods (such as `keras.random.normal()`)
  are stateless, meaning that if you pass an integer seed to them
  (such as `seed=42`), they will return the same values at each call.
  In order to get different values at each call, you must use a
  `SeedGenerator` instead as the seed argument. The `SeedGenerator`
  object is stateful.
  
  Example:
  
  ```python
  seed_gen = keras.random.SeedGenerator(seed=42)
  values = keras.random.normal(shape=(2, 3), seed=seed_gen)
  new_values = keras.random.normal(shape=(2, 3), seed=seed_gen)
  ```
  
  Usage in a layer:
  
  ```python
  class Dropout(keras.Layer):
      def __init__(self, **kwargs):
          super().__init__(**kwargs)
          self.seed_generator = keras.random.SeedGenerator(1337)
  
      def call(self, x, training=False):
          if training:
              return keras.random.dropout(
                  x, rate=0.5, seed=self.seed_generator
              )
          return x
  ```
code: def __init__(self, seed=None, **kwargs):
      custom_backend = kwargs.pop("backend", None)
      if kwargs:
          raise ValueError(f"Unrecognized keyword arguments: {kwargs}")
      if custom_backend is not None:
          self.backend = custom_backend
      else:
          self.backend = backend
  
      self._initial_seed = seed
      if seed is None:
          seed = make_default_seed()
  
      if not isinstance(seed, int):
          raise ValueError(
              "Argument `seed` must be an integer. "
              f"Received: seed={seed}"
          )
  
      def seed_initializer(*args, **kwargs):
          dtype = kwargs.get("dtype", None)
          return self.backend.convert_to_tensor([seed, 0], dtype=dtype)
  
      self.state = self.backend.Variable(
          seed_initializer,
          shape=(2,),
          dtype="uint32",
          trainable=False,
          name="seed_generator_state",
      )
  
file_path: keras/keras/random/seed_generator.py
imports: import random
  import numpy
  from keras import backend
  from keras.api_export import keras_export
  from keras.backend.common import global_state
  from keras.utils import jax_utils
label_desc: Use image node_id 1 to create a new SeedGenerator object  with example: obj = SeedGenerator(seed)