code: def dropout(inputs, rate, noise_shape=None, seed=None):
      seed = jax_draw_seed(seed)
      keep_prob = 1.0 - rate
      # The `noise_shape` may contain `None` so we need to convert it
      # into a concrete shape before passing it on to jax.
      noise_shape = _get_concrete_noise_shape(inputs, noise_shape)
      mask = jax.random.bernoulli(seed, p=keep_prob, shape=noise_shape)
      mask = jax.numpy.broadcast_to(mask, inputs.shape)
      return jax.lax.select(
          mask, inputs / keep_prob, jax.numpy.zeros_like(inputs)
      )
  
file_path: keras/keras/backend/jax/random.py
imports: import jax
  from keras.backend.config import floatx
  from keras.random.seed_generator import SeedGenerator
  from keras.random.seed_generator import draw_seed
  from keras.random.seed_generator import make_default_seed
label_desc: Use image node_id 8 for calling a global function with example usage: dropout(inputs, rate, noise_shape, seed) and returns: jax