class_docstr: Neural network implementation.
  A neural network is a directed graph consisting of layers that perform
  calculations on data blobs. It starts with source layers and ends with 
  sink layers.
  
  :param neoml.MathEngine.MathEngine math_engine: The math engine that will perform calculations.
  :param random: The random numbers generator to be used for training and initialization.
  :type random: object, default=None 
class_docstr_tok: ["Neural","network","implementation",".","A","neural","network","is","a","directed","graph","consisting","of","layers","that","perform","calculations","on","data","blobs",".","It","starts","with","source","layers","and","ends","with","sink","layers",".",":","param","neoml.MathEngine.MathEngine","math_engine",":","The","math","engine","that","will","perform","calculations",".",":","param","random",":","The","random","numbers","generator","to","be","used","for","training","and","initialization",".",":","type","random",":","object",",","default=None"]
docstr: Runs the network.
  
  :param inputs: The dictionary of input blobs.
      The dictionary keys (`str`) are the source layer names.
      The dictionary values (`neoml.Blob.Blob`) are the blobs passed 
      to these source layers.
  :type: inputs: dict
  
  .. rubric:: Layer outputs:
  
      The list of output blobs.
docstr_tok: ["Runs","the","network",".",":","param","inputs",":","The","dictionary","of","input","blobs",".","The","dictionary","keys","(","`","str","`",")","are","the","source","layer","names",".","The","dictionary","values","(","`","neoml.Blob.Blob","`",")","are","the","blobs","passed","to","these","source","layers",".",":","type",":","inputs",":","dict","..","rubric",":",":","Layer","outputs",":","The","list","of","output","blobs","."]
code: def run(self, inputs):
      """Runs the network.
  
      :param inputs: The dictionary of input blobs.
          The dictionary keys (`str`) are the source layer names.
          The dictionary values (`neoml.Blob.Blob`) are the blobs passed
          to these source layers.
      :type: inputs: dict
  
      .. rubric:: Layer outputs:
  
          The list of output blobs.
      """
      dnn_inputs = self.get_inputs()
  
      if len(inputs) < len(dnn_inputs):
          raise ValueError(
              "The `inputs` contains less layers than the dnn."
          )
  
      if len(inputs) > len(dnn_inputs):
          raise ValueError(
              "The `inputs` contains more layers than the dnn."
          )
  
      input_list = []
      for layer_name in dnn_inputs:
          input_list.append(inputs[layer_name]._internal)
  
      dnn_outputs = self._run(input_list)
      outputs_blobs = {
          k: neoml.Blob.Blob(v) for k, v in dnn_outputs.items()
      }
      return outputs_blobs
  
imports: import neoml.PythonWrapper
  import neoml.Random
label_desc: Use image node_id 16 for calling the Dnn obj's underlying member method code with example usage: obj.run(inputs) and returns: outputs_blobs