aboutsummaryrefslogtreecommitdiff
path: root/model/time_mlp.py
diff options
context:
space:
mode:
authorÉtienne Simon <esimon@esimon.eu>2015-07-02 12:59:15 -0400
committerÉtienne Simon <esimon@esimon.eu>2015-07-02 12:59:15 -0400
commit98139f573eb179c8f5a06ba6c8d8883376814ccf (patch)
treef27270d80cb91c19639227c921549f762eda2f72 /model/time_mlp.py
parenta4b190516d00428b1d8a81686a3291e5fa5f9865 (diff)
downloadtaxi-98139f573eb179c8f5a06ba6c8d8883376814ccf.tar.gz
taxi-98139f573eb179c8f5a06ba6c8d8883376814ccf.zip
Remove _simple
Diffstat (limited to 'model/time_mlp.py')
-rw-r--r--model/time_mlp.py31
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']