code: def test_op_dropout_with_explicit_seed(device_id, precision):
      from cntk import combine, dropout
  
      value = np.ones(
          shape=(100, 100), dtype=PRECISION_TO_TYPE[precision]
      )
  
      a = C.input_variable(
          shape=value.shape,
          dtype=sanitize_dtype_cntk(PRECISION_TO_TYPE[precision]),
          needs_gradient=True,
          name="a",
      )
  
      seed = 123
  
      dropout_nodes = [
          dropout(a, dropout_rate=0.5, seed=seed),
          dropout(a, dropout_rate=0.5, seed=seed),
          dropout(a, dropout_rate=0.5, seed=seed + 1),
          dropout(a, dropout_rate=0.5),
      ]
  
      cloned_nodes = [x.clone("clone") for x in dropout_nodes]
  
      value.shape = (1, 1) + value.shape
  
      results = []
      for node in dropout_nodes + cloned_nodes:
          forward_input = {node.inputs[0]: value}
          forward, backward = cntk_eval(
              node,
              forward_input,
              precision,
              cntk_device(device_id),
              backward_pass=True,
          )
  
          results.append(forward[node.output])
  
      assert np.allclose(results[0], results[1])
      assert not np.allclose(results[0], results[2])
      assert not np.allclose(results[0], results[3])
  
      clones = results[len(dropout_nodes) :]
      for i in range(len(clones)):
          assert np.allclose(results[i], clones[i])
  
imports: from __future__ import division
  import numpy
  import cntk
  import pytest
  from .ops_test_utils import unittest_helper, _test_unary_op, _test_binary_op, AA, precision, PRECISION_TO_TYPE, cntk_device
  from cntk.tests.test_utils import TOLERANCE_ABSOLUTE
  from cntk.internal.utils import eval
  from cntk.internal import sanitize_dtype_cntk
  from ..None import constant
  from cntk.variables import Parameter, Constant
label_desc: Use image node_id 10 for calling a global function with example usage: test_op_dropout_with_explicit_seed(device_id, precision) without return types