code: def generate_random_data(sample_size, feature_dim, num_classes):
      # Create synthetic data using NumPy.
      Y = np.random.randint(
          size=(sample_size, 1), low=0, high=num_classes
      )
  
      # Make sure that the data is separable
      X = (np.random.randn(sample_size, feature_dim) + 3) * (Y + 1)
      X = X.astype(np.float32)
      # converting class 0 into the vector "1 0 0",
      # class 1 into vector "0 1 0", ...
      class_ind = [
          Y == class_number for class_number in range(num_classes)
      ]
      Y = np.asarray(np.hstack(class_ind), dtype=np.float32)
      return X, Y
  
file_path: CNTK/Tutorials/NumpyInterop/FeedForwardNet.py
imports: import numpy
  from cntk.device import cpu, try_set_default_device
  from cntk import Trainer
  from cntk.layers import Dense, Sequential, For
  from cntk.learners import sgd, learning_parameter_schedule
  from cntk.ops import input_variable, sigmoid
  from cntk.losses import cross_entropy_with_softmax
  from cntk.metrics import classification_error
  from cntk.logging import ProgressPrinter
label_desc: Use image node_id 1 for calling a global function with example usage: generate_random_data(sample_size, feature_dim, num_classes) and returns: X,  Y