diff options
Diffstat (limited to 'model/time_mlp.py')
-rw-r--r-- | model/time_mlp.py | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/model/time_mlp.py b/model/time_mlp.py new file mode 100644 index 0000000..a52590d --- /dev/null +++ b/model/time_mlp.py @@ -0,0 +1,31 @@ +from blocks.bricks import application, Identity + +import error +from model.mlp import FFMLP, Stream + + +class Model(FFMLP): + def __init__(self, config, **kwargs): + super(Model, self).__init__(config, output_layer=Identity, **kwargs) + self.inputs.append('input_time') + + @application(outputs=['duration']) + def predict(self, **kwargs): + outputs = super(Model, self).predict(**kwargs).flatten() + if hasattr(self.config, 'exp_base'): + outputs = self.config.exp_base ** outputs + return kwargs['input_time'] + outputs + + @predict.property('inputs') + def predict_inputs(self): + return self.inputs + + @application(outputs=['cost']) + def cost(self, **kwargs): + y_hat = self.predict(**kwargs) + y = kwargs['travel_time'] + return error.rmsle(y_hat, y) + + @cost.property('inputs') + def cost_inputs(self): + return self.inputs + ['travel_time'] |