J'essaie de modèle de port this dans Keras
v2 mais j'ai un problème avec la fonction suivante:Utiliser le calque Fusionner (lambda/function) sur Keras 2.0?
def __call__(self, sent1, sent2):
def _outer(AB):
att_ji = K.batch_dot(AB[1], K.permute_dimensions(AB[0], (0, 2, 1)))
return K.permute_dimensions(att_ji, (0, 2, 1))
return merge([self.model(sent1), self.model(sent2)], mode=_outer,
output_shape=(self.max_length, self.max_length))
Selon la documentation, mode
est:
chaîne ou lambda/fonction. Si chaîne, doit être un de: 'somme', 'mul', 'concat', 'ave', 'cos', 'point', 'max'. Si lambda/fonction, il faut prendre en entrée une liste de tenseurs et renvoyer un seul tenseur.
Ce qui est fonction équivalente (lorsque le mode est fonction/lambda) dans la nouvelle version afin d'éviter Keras
avertissement suivant:
UserWarning: The `merge` function is deprecated and will be removed after 08/2017. Use instead layers from `keras.layers.merge`, e.g. `add`, `concatenate`, etc.
return merge([attention, sentence], mode=_normalize_attention, output_shape=(self.max_length, self.nr_hidden))