File tree Expand file tree Collapse file tree 1 file changed +23
-1
lines changed Expand file tree Collapse file tree 1 file changed +23
-1
lines changed Original file line number Diff line number Diff line change @@ -20,4 +20,26 @@ def get_output(self, train=False):
2020
2121 def get_config (self ):
2222 return {"name" :self .__class__ .__name__ ,
23- "sigma" :self .sigma }
23+ "sigma" :self .sigma }
24+
25+ class GaussianDropout (Layer ):
26+ '''
27+ Multiplicative Gaussian Noise
28+ Reference:
29+ Dropout: A Simple Way to Prevent Neural Networks from Overfitting
30+ Srivastava, Hinton, et al. 2014
31+ '''
32+ def __init__ (self , p ):
33+ super (GaussianDropout ,self ).__init__ ()
34+ self .p = p
35+
36+ def get_output (self , train ):
37+ X = self .get_input (train )
38+ if train :
39+ # self.p refers to drop probability rather than retain probability (as in paper) to match Dropout layer syntax
40+ X *= srng .normal (size = X .shape , avg = 1. , std = T .sqrt (self .p / (1 - self .p )), dtype = theano .config .floatX )
41+ return X
42+
43+ def get_config (self ):
44+ return {"name" :self .__class__ .__name__ ,
45+ "p" :self .p }
You can’t perform that action at this time.
0 commit comments