code: def compute(self, inputs, outputs):
      
  
      # Uncomment this to find out who is generating divide by 0, or other numpy warnings
      # numpy.seterr(divide='raise', invalid='raise', over='raise')
  
      # Modify this line to turn on profiling for a given node. The results file
      #  ('hotshot.stats') will be sensed and printed out by the vision framework's
      #  RunInference.py script at the end of inference.
      # Also uncomment the hotshot import at the top of this file.
      if False and self.learningMode \
          and self._iterations > 0 and self._iterations <= 10:
  
        import hotshot
        if self._iterations == 10:
          print "\n  Collecting and sorting internal node profiling stats generated by hotshot..."
          stats = hotshot.stats.load("hotshot.stats")
          stats.strip_dirs()
          stats.sort_stats('time', 'calls')
          stats.print_stats()
  
        # The guts of the compute are contained in the _compute() call so that we
        # can profile it if requested.
        if self._profileObj is None:
          print "\n  Preparing to capture profile using hotshot..."
          if os.path.exists('hotshot.stats'):
            # There is an old hotshot stats profile left over, remove it.
            os.remove('hotshot.stats')
          self._profileObj = hotshot.Profile("hotshot.stats", 1, 1)
                                            # filename, lineevents, linetimings
        self._profileObj.runcall(self._compute, *[inputs, outputs])
      else:
        self._compute(inputs, outputs)
docs: Run one iteration, profiling it if requested.
  
      :param inputs: (dict) mapping region input names to numpy.array values
      :param outputs: (dict) mapping region output names to numpy.arrays that 
             should be populated with output values by this method