From 98139f573eb179c8f5a06ba6c8d8883376814ccf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89tienne=20Simon?= Date: Thu, 2 Jul 2015 12:59:15 -0400 Subject: Remove _simple --- model/dest_mlp_tgtcls.py | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 model/dest_mlp_tgtcls.py (limited to 'model/dest_mlp_tgtcls.py') diff --git a/model/dest_mlp_tgtcls.py b/model/dest_mlp_tgtcls.py new file mode 100644 index 0000000..46fca2b --- /dev/null +++ b/model/dest_mlp_tgtcls.py @@ -0,0 +1,34 @@ +import numpy +import theano +from theano import tensor +from blocks.bricks import application, Softmax + +import error +from model.mlp import FFMLP, Stream + + +class Model(FFMLP): + def __init__(self, config, **kwargs): + super(Model, self).__init__(config, output_layer=Softmax, **kwargs) + self.classes = theano.shared(numpy.array(config.tgtcls, dtype=theano.config.floatX), name='classes') + + @application(outputs=['destination']) + def predict(self, **kwargs): + cls_probas = super(Model, self).predict(**kwargs) + return tensor.dot(cls_probas, self.classes) + + @predict.property('inputs') + def predict_inputs(self): + return self.inputs + + @application(outputs=['cost']) + def cost(self, **kwargs): + y_hat = self.predict(**kwargs) + y = tensor.concatenate((kwargs['destination_latitude'][:, None], + kwargs['destination_longitude'][:, None]), axis=1) + + return error.erdist(y_hat, y).mean() + + @cost.property('inputs') + def cost_inputs(self): + return self.inputs + ['destination_latitude', 'destination_longitude'] -- cgit v1.2.3