1
1
import tensorflow as tf
2
- import numpy as np
3
- import autoencoder .Utils
4
-
5
2
6
3
class AdditiveGaussianNoiseAutoencoder (object ):
7
4
def __init__ (self , n_input , n_hidden , transfer_function = tf .nn .softplus , optimizer = tf .train .AdamOptimizer (),
@@ -31,7 +28,8 @@ def __init__(self, n_input, n_hidden, transfer_function = tf.nn.softplus, optimi
31
28
32
29
def _initialize_weights (self ):
33
30
all_weights = dict ()
34
- all_weights ['w1' ] = tf .Variable (autoencoder .Utils .xavier_init (self .n_input , self .n_hidden ))
31
+ all_weights ['w1' ] = tf .get_variable ("w1" , shape = [self .n_input , self .n_hidden ],
32
+ initializer = tf .contrib .layers .xavier_initializer ())
35
33
all_weights ['b1' ] = tf .Variable (tf .zeros ([self .n_hidden ], dtype = tf .float32 ))
36
34
all_weights ['w2' ] = tf .Variable (tf .zeros ([self .n_hidden , self .n_input ], dtype = tf .float32 ))
37
35
all_weights ['b2' ] = tf .Variable (tf .zeros ([self .n_input ], dtype = tf .float32 ))
@@ -53,9 +51,9 @@ def transform(self, X):
53
51
self .scale : self .training_scale
54
52
})
55
53
56
- def generate (self , hidden = None ):
54
+ def generate (self , hidden = None ):
57
55
if hidden is None :
58
- hidden = np . random . normal ( size = self .weights [ "b1" ] )
56
+ hidden = self . sess . run ( tf . random_normal ([ 1 , self .n_hidden ]) )
59
57
return self .sess .run (self .reconstruction , feed_dict = {self .hidden : hidden })
60
58
61
59
def reconstruct (self , X ):
@@ -98,7 +96,8 @@ def __init__(self, n_input, n_hidden, transfer_function = tf.nn.softplus, optimi
98
96
99
97
def _initialize_weights (self ):
100
98
all_weights = dict ()
101
- all_weights ['w1' ] = tf .Variable (autoencoder .Utils .xavier_init (self .n_input , self .n_hidden ))
99
+ all_weights ['w1' ] = tf .get_variable ("w1" , shape = [self .n_input , self .n_hidden ],
100
+ initializer = tf .contrib .layers .xavier_initializer ())
102
101
all_weights ['b1' ] = tf .Variable (tf .zeros ([self .n_hidden ], dtype = tf .float32 ))
103
102
all_weights ['w2' ] = tf .Variable (tf .zeros ([self .n_hidden , self .n_input ], dtype = tf .float32 ))
104
103
all_weights ['b2' ] = tf .Variable (tf .zeros ([self .n_input ], dtype = tf .float32 ))
@@ -115,9 +114,9 @@ def calc_total_cost(self, X):
115
114
def transform (self , X ):
116
115
return self .sess .run (self .hidden , feed_dict = {self .x : X , self .keep_prob : 1.0 })
117
116
118
- def generate (self , hidden = None ):
117
+ def generate (self , hidden = None ):
119
118
if hidden is None :
120
- hidden = np . random . normal ( size = self .weights [ "b1" ] )
119
+ hidden = self . sess . run ( tf . random_normal ([ 1 , self .n_hidden ]) )
121
120
return self .sess .run (self .reconstruction , feed_dict = {self .hidden : hidden })
122
121
123
122
def reconstruct (self , X ):
0 commit comments