def __init__ (self, model_params, nkerns=[1,8,4], ckern=10, filter_sizes=[5,5,5,7]):
"""Initializes the architecture of the discriminator"""
self.num_hid, num_dims, num_class, self.batch_size, self.num_channels = model_params
self.D = int(np.sqrt(num_dims / self.num_channels))
numpy_rng=np.random.RandomState(1234)
self.nkerns = np.asarray(nkerns) * ckern # of constant gen filters in first conv layer
self.nkerns[0] = self.num_channels
self.filter_sizes=filter_sizes
num_convH = self.nkerns[-1]*filter_sizes[-1]*filter_sizes[-1]
self.W = initialize_weight(num_convH, self.num_hid, 'W', numpy_rng, 'uniform')
self.hbias = theano.shared(np.zeros((self.num_hid,), dtype=theano.config.floatX), name='hbias_enc')
self.W_y = initialize_weight(self.num_hid, num_class, 'W_y', numpy_rng, 'uniform')
self.L1 = BN_Conv_layer(self.batch_size, numpy_rng, tnkern=self.nkerns[0], bnkern=self.nkerns[1] , bfilter_sz=filter_sizes[0], tfilter_sz=filter_sizes[1])
self.L2 = BN_Conv_layer(self.batch_size, numpy_rng, tnkern=self.nkerns[1], bnkern=self.nkerns[2] , bfilter_sz=filter_sizes[1], tfilter_sz=filter_sizes[2])
self.num_classes = num_class
self.params = [self.W_y, self.W, self.hbias] + self.L1.params + self.L2.params
评论列表
文章目录