def build_output(self):
pi = Dense(self.output_size, activation='sigmoid', kernel_initializer=self.init,
kernel_regularizer=l1_l2(self.l1_coef, self.l2_coef),
name='pi')(self.last_hidden_pi)
disp = Dense(self.output_size, activation=DispAct,
kernel_initializer=self.init,
kernel_regularizer=l1_l2(self.l1_coef, self.l2_coef),
name='dispersion')(self.last_hidden_disp)
mean = Dense(self.output_size, activation=MeanAct, kernel_initializer=self.init,
kernel_regularizer=l1_l2(self.l1_coef, self.l2_coef),
name='mean')(self.last_hidden_mean)
output = ColWiseMultLayer(name='output')([mean, self.sf_layer])
output = SliceLayer(0, name='slice')([output, disp, pi])
zinb = ZINB(pi, theta=disp, ridge_lambda=self.ridge, debug=self.debug)
self.loss = zinb.loss
self.extra_models['pi'] = Model(inputs=self.input_layer, outputs=pi)
self.extra_models['dispersion'] = Model(inputs=self.input_layer, outputs=disp)
self.extra_models['mean_norm'] = Model(inputs=self.input_layer, outputs=mean)
self.model = Model(inputs=[self.input_layer, self.sf_layer], outputs=output)
if self.ae:
self.encoder = self.get_encoder()
评论列表
文章目录