docstr: Creates a random `seed_input` if None. Otherwise:
  - Ensures batch_size dim on provided `seed_input`.
  - Shuffle axis according to expected `image_data_format`.
docstr_tok: ["Creates","a","random","`","seed_input","`","if","None",".","Otherwise",":","-","Ensures","batch_size","dim","on","provided","`","seed_input","`",".","-","Shuffle","axis","according","to","expected","`","image_data_format","`","."]
code: def _get_seed_input(self, seed_input):
      """Creates a random `seed_input` if None. Otherwise:
      - Ensures batch_size dim on provided `seed_input`.
      - Shuffle axis according to expected `image_data_format`.
      """
      desired_shape = (1,) + K.int_shape(self.input_tensor)[1:]
      if seed_input is None:
          return utils.random_array(
              desired_shape,
              mean=np.mean(self.input_range),
              std=0.05 * (self.input_range[1] - self.input_range[0]),
          )
  
      # Add batch dim if needed.
      if len(seed_input.shape) != len(desired_shape):
          seed_input = np.expand_dims(seed_input, 0)
  
      # Only possible if channel idx is out of place.
      if (
          seed_input.shape[-1] != desired_shape[-1]
          and seed_input.shape[1] != desired_shape[1]
      ):
          seed_input = np.moveaxis(seed_input, -1, 1)
      return seed_input.astype(K.floatx())
  
file_path: keras-vis/vis/optimizer.py
imports: from __future__ import absolute_import
  import numpy
  from keras import backend
  from .callbacks import Print
  from .grad_modifiers import get
  from .utils import utils
label_desc: Use image node_id 3 for calling the Optimizer obj's underlying member method code with example usage: obj._get_seed_input(seed_input) and returns: seed_input, utils