Ich versuche, die Entity-Einbettung von Modellen mithilfe von Keras zu reproduzieren. Hier ist der github link und der Zweig kaggle
. Es gibt eine Python-Datei models.py
und die Merge
-Ebene wird verwendet.
from keras.layers.core import Dense, Dropout, Activation, Merge, Reshape
......
self.model.add(Merge(models, mode='concat'))
Dieser Code sollte für die alte Version von Keras geeignet sein. Wenn Sie jedoch Keras 2.0.0 mit Tensorflow 1.0.0 als Backend (Python 2.7) verwenden, werden falsche Informationen angezeigt:
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]
Gibt es jemanden, der weiß, wie man dasselbe Ziel (self.model.add(Merge(models, mode='concat'))
) erreicht oder wie die Merge/Merge-Ebene mit Keras 2.0.0 verwendet wird? Vielen Dank.
Ich denke, Sie importieren von einem falschen Ort. Du solltest tun:
from keras.layers import Merge
In diesem Github post finden Sie weitere Informationen zu merge/Merge
und deren Verwendung.
Aus dem gleichen Github post sind die folgenden zwei Codeausschnitte äquivalent.
Keras 1.2.2-Code:
from keras.engine import merge
m = merge([init, x], mode='sum')
Äquivalenter Keras 2.0.2-Code:
from keras.layers import add
m = add([init, x])
In Keras 2.0.4 funktioniert "Zusammenführen" nicht, aber "Zusammenführen" ist in Ordnung, die Verwendung ist wie folgt:
from keras.layers import merge
m = merge([x1, x2], mod="cos", dot_axes=1)
der Funktionscode besteht nicht darin, die concat-Funktion zu implementieren, sondern, um den Cosinus-Wert zu erhalten, ist die concat-Funktion ähnlich.
Dieser Code in Keras 2.2.4 funktioniert jedoch nicht. Er gibt einen Fehler des Objekts "Modul" ist nicht aufrufbar. "Dies ist ein Problem, das durch die Keras-Version verursacht wird.