Skip to content

What should learners do when fed the same point twice

def tell(self, x, y):
     if x in self.data:
         return

This is what we do for LearnerND (and I think Learner2D also, but I'm not sure).

Does this make sense? In what cases would someone call tell if the point was already evaluated? Would it make more sense to raise an exception because this indicates an error?

If I say

learner.tell(1, 2)
learner.tell(1, 4)

I would either expect:

  • An exception to be raised
  • The new data to overwrite the old data, losses to be updated etc.