J'essaie de reproduire l'entité incorporant des modèles à l'aide de Keras. Voici le lien github et utilisez la branche kaggle
. Il existe un fichier python models.py
et la couche Merge
est utilisée.
from keras.layers.core import Dense, Dropout, Activation, Merge, Reshape
......
self.model.add(Merge(models, mode='concat'))
Ce code devrait convenir à l'ancienne version de Keras, mais si vous utilisez Keras 2.0.0 en utilisant tensorflow 1.0.0 comme serveur principal (python 2.7), vous obtiendrez des informations erronées:
Using TensorFlow backend.
Traceback (most recent call last):
File "/Users/pengjuzhao/Udacity/MLND/entity-embedding-rossmann/test_model.py", line 2, in <module>
from models import NN_with_EntityEmbedding
File "/Users/pengjuzhao/Udacity/MLND/entity-embedding-rossmann/models.py", line 8, in <module>
from keras.layers.core import Dense, Dropout, Activation, Merge, Reshape
ImportError: cannot import name Merge
[Finished in 1.8s with exit code 1]
[Shell_cmd: python -u "/Users/pengjuzhao/Udacity/MLND/entity-embedding-rossmann/test_model.py"]
[dir: /Users/pengjuzhao/Udacity/MLND/entity-embedding-rossmann]
[path: /usr/bin:/bin:/usr/sbin:/sbin]
Quelqu'un sait-il comment atteindre la même cible (self.model.add(Merge(models, mode='concat'))
) ou comment utiliser le calque fusion/fusion à l'aide de Keras 2.0.0? Merci d'avance.
Je pense que vous importez du mauvais emplacement. Tu devrais faire:
from keras.layers import Merge
Voir ceci Github post pour plus de détails sur merge/Merge
et comment les utiliser.
Depuis le même Github post , les deux extraits de code suivants sont équivalents.
Keras 1.2.2 code:
from keras.engine import merge
m = merge([init, x], mode='sum')
Code Keras 2.0.2 équivalent:
from keras.layers import add
m = add([init, x])
Dans Keras 2.0.4, "Fusionner" n’est pas un travail, mais "fusionner" est correct, son utilisation est la suivante:
from keras.layers import merge
m = merge([x1, x2], mod="cos", dot_axes=1)
le code de fonction ne consiste pas à implémenter la fonction concat mais à obtenir la valeur de cosinus, la fonction concat est similaire.
Mais ce code dans Keras 2.2.4 ne fonctionne pas, il génère une erreur "l'objet 'module' n'est pas appelable", il s'agit d'un problème causé par la version de Keras.