Example #1
0
class AndOrNetwork(object):
  
  def __init__(self, regions):
    self.regions = regions
    self.classifier = ClassifierRegion((1,1))
    self.regions.append(self.classifier)
    self.num_regions = len(regions)
    
    for k in range(1, self.num_regions):
      self.regions[k].set_child(self.regions[k-1])
  
  def do_inference(self, image, category):
    """ Returns True iff the image is recognized correctly. """
    self.regions[0].do_inference(image)
    for region in self.regions[1:]:
      region.do_inference()
    return self.classifier.is_recognized(category)

  def get_classifier(self):
    """ Returns the final region. """
    return self.classifier
  
  def prepare_for_inference(self, start=0):
    """ Pass-through method to regions. """
    for r in self.regions[start:]:
      r.prepare_for_inference()
Example #2
0
 def __init__(self, regions):
   self.regions = regions
   self.classifier = ClassifierRegion((1,1))
   self.regions.append(self.classifier)
   self.num_regions = len(regions)
   
   for k in range(1, self.num_regions):
     self.regions[k].set_child(self.regions[k-1])