class PredictionANN(PredictionBase): def __init__(self, n=10): super(PredictionANN, self).__init__(n) self.mlp = MLP([1 + 3 * n, 3 * n, 2]) def get_ann_input(self, delta_time): temp = [x.tolist() for x in self.pos_buffer] for i in xrange(len(temp)): temp[i].append(self.time_buffer[i] - self.time_buffer[0]) temp = [item for sublist in temp for item in sublist] return [delta_time] + temp def train(self, pos, delay): if len(self.pos_buffer) == self.N: self.mlp.train( self.get_ann_input( self.get_current_time(delay) - self.time_buffer[0]), pos.tonp() / 100) self.update(pos, delay) def predict(self, delta_time): if len(self.pos_buffer) != self.N: return np.array([0, 0]) return self.mlp.proc( self.get_ann_input(self.get_current_time() + delta_time - self.time_buffer[0])) * 100
class PredictionANN(PredictionBase): def __init__(self, n=10): super(PredictionANN, self).__init__(n) self.mlp = MLP([1+3*n, 3*n, 2]) def get_ann_input(self, delta_time): temp = [x.tolist() for x in self.pos_buffer] for i in xrange(len(temp)): temp[i].append(self.time_buffer[i]-self.time_buffer[0]) temp = [item for sublist in temp for item in sublist] return [delta_time] + temp def train(self, pos, delay): if len(self.pos_buffer) == self.N: self.mlp.train(self.get_ann_input(self.get_current_time(delay)-self.time_buffer[0]), pos.tonp()/100) self.update(pos, delay) def predict(self, delta_time): if len(self.pos_buffer) != self.N: return np.array([0,0]) return self.mlp.proc(self.get_ann_input(self.get_current_time()+delta_time-self.time_buffer[0]))*100