code: def _dropout_helper(draw):
      mixed_fn_compos = draw(st.booleans())
      is_torch_backend = ivy.current_backend_str() == "torch"
      shape = draw(helpers.get_shape(min_num_dims=1))
      dtype = draw(
          helpers.get_dtypes(
              "float", full=False, mixed_fn_compos=mixed_fn_compos
          )
      )
      dtype_and_x = draw(
          helpers.dtype_and_values(
              available_dtypes=helpers.get_dtypes(
                  "float", mixed_fn_compos=mixed_fn_compos
              ),
              shape=shape,
          )
      )
      noise_shape = list(shape)
      if draw(st.booleans()):
          noise_shape = None
      else:
          for i, _ in enumerate(noise_shape):
              if draw(st.booleans()):
                  noise_shape[i] = 1
              elif draw(st.booleans()):
                  noise_shape[i] = None
      seed = draw(helpers.ints(min_value=0, max_value=100))
      prob = draw(helpers.floats(min_value=0, max_value=0.9))
      scale = draw(st.booleans())
      training = draw(st.booleans())
  
      if is_torch_backend and not mixed_fn_compos:
          noise_shape = None
          seed = None
      return (
          dtype_and_x,
          noise_shape,
          seed,
          dtype,
          prob,
          scale,
          training,
      )
  
imports: from hypothesis import strategies, assume
  import ivy
  import numpy
  import ivy_tests.test_ivy.helpers
  from ivy_tests.test_ivy.helpers import handle_test
  from ivy.functional.ivy.layers import _deconv_length, _pack_padded_sequence
label_desc: Use image node_id 2 for calling a global function with example usage: _dropout_helper(draw) and returns: dtype_and_x,  noise_shape,  seed,  dtype,  prob,  scale,  training