def _init_params(self):
self.iBlocks = 1 # number of blocks in the input (from lower layer)
W_em = self.init_fn(self.n_in,
self.n_class,
self.sparsity,
self.scale,
self.rng)
self.W_em = theano.shared(W_em,
name='W_%s' % self.name)
self.b_em = theano.shared(
self.bias_fn(self.n_class, self.bias_scale, self.rng),
name='b_%s' % self.name)
U_em = theano.shared(((self.rng.rand(self.iBlocks, self.n_class,
self.n_in, self.n_words_class)-0.5)/(self.n_words_class*self.n_in)
).astype(theano.config.floatX), name='U_%s'%self.name)
self.U_em = U_em
c_em = numpy.zeros((self.n_class, self.n_words_class), dtype='float32')
n_words_last_class = self.n_out % self.n_words_class
#c_em[-1, n_words_last_class:] = -numpy.inf
self.c_em = theano.shared(c_em, name='c_%s' % self.name)
self.params = [self.W_em, self.b_em, self.U_em, self.c_em]
self.params_grad_scale = [self.grad_scale for x in self.params]
评论列表
文章目录