From babc0b9dd873de40ba459027a27865c330b4f58b Mon Sep 17 00:00:00 2001 From: Michael Oliver Date: Thu, 23 Apr 2015 11:36:26 -0700 Subject: [PATCH] add constraints and regularizers modules --- keras/constraints.py | 16 ++++++++++++++++ keras/regularizers.py | 19 +++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 keras/constraints.py create mode 100644 keras/regularizers.py diff --git a/keras/constraints.py b/keras/constraints.py new file mode 100644 index 000000000..def781091 --- /dev/null +++ b/keras/constraints.py @@ -0,0 +1,16 @@ +from __future__ import absolute_import +import theano +import theano.tensor as T +import numpy as np + +def maxnorm(m=2): + def maxnorm_wrap(p): + norms = T.sqrt(T.sum(T.sqr(p), axis=0)) + desired = T.clip(norms, 0, m) + p = p * (desired / (1e-7 + norms)) + return p + return maxnorm_wrap + +def nonneg(p): + p *= T.ge(p,0) + return p \ No newline at end of file diff --git a/keras/regularizers.py b/keras/regularizers.py new file mode 100644 index 000000000..84c54bf80 --- /dev/null +++ b/keras/regularizers.py @@ -0,0 +1,19 @@ +from __future__ import absolute_import +import theano +import theano.tensor as T +import numpy as np + +def l1(lam=.01): + def l1wrap(g,p): + g += T.sgn(p) * lam + return g + return l1wrap + +def l2(lam=.01): + def l2wrap(g,p): + g += p * lam + return g + return l2wrap + +def ident(g,*l): + return g \ No newline at end of file