def build_output(self):
mean = Dense(self.output_size, activation=MeanAct, kernel_initializer=self.init,
kernel_regularizer=l1_l2(self.l1_coef, self.l2_coef),
name='mean')(self.decoder_output)
# Plug in dispersion parameters via fake dispersion layer
disp = ConstantDispersionLayer(name='dispersion')
mean = disp(mean)
output = ColWiseMultLayer(name='output')([mean, self.sf_layer])
nb = NB(disp.theta_exp)
self.loss = nb.loss
self.extra_models['dispersion'] = lambda :K.function([], [nb.theta])([])[0].squeeze()
self.extra_models['mean_norm'] = Model(inputs=self.input_layer, outputs=mean)
self.extra_models['decoded'] = Model(inputs=self.input_layer, outputs=self.decoder_output)
self.model = Model(inputs=[self.input_layer, self.sf_layer], outputs=output)
if self.ae:
self.encoder = self.get_encoder()
评论列表
文章目录