def build(self): x = self._encoder(self.enc_input) x = TimeDistributed(GlobalAveragePooling2D())(x) x = self._rnn(x) x = Model(inputs=self.enc_input, outputs=x) rnn_out = x.get_layer(name='rnn_dense1').output enc_out = x.get_layer(name='encoder_conv8').output x = FusionLayer()([enc_out, self.incep_out, rnn_out]) x = self._decoder(x) model = Model(inputs=[self.enc_input, self.incep_out], outputs=x) return model