From 8db75c061967e01f2345b5b5c658be51e9b024d6 Mon Sep 17 00:00:00 2001 From: Michael Oliver Date: Mon, 27 Feb 2017 14:19:52 -0800 Subject: [PATCH] move div to end for speed up --- keras_contrib/layers/core.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/keras_contrib/layers/core.py b/keras_contrib/layers/core.py index b765c25..63c498e 100644 --- a/keras_contrib/layers/core.py +++ b/keras_contrib/layers/core.py @@ -149,14 +149,13 @@ class CosineDense(Layer): b, xb = 0., 0. xnorm = K.sqrt(K.sum(K.square(x), axis=-1, keepdims=True) + xb + K.epsilon()) - x /= xnorm - Wnorm = K.sqrt(K.sum(K.square(self.W), axis=0) + K.square(b) + K.epsilon()) - W = self.W / Wnorm - output = K.dot(x, W) + xWnorm = (xnorm * Wnorm) + + output = K.dot(x, self.W)/xWnorm if self.bias: - output += (self.b / (xnorm * Wnorm)) + output += (self.b / xWnorm) return self.activation(output) def get_output_shape_for(self, input_shape):