2017-03-16 5 views
6

Ich versuche, die Entity Einbettungsmodelle mit Keras zu reproduzieren. Hier ist die github link und verwenden Sie den kaggle Zweig. Es gibt eine Python-Datei models.py und die Merge Schicht wird verwendet.Wie verwende ich Merge-Layer (concat-Funktion) auf Keras 2.0.0?

from keras.layers.core import Dense, Dropout, Activation, Merge, Reshape ......
self.model.add(Merge(models, mode='concat'))

Dieser Code soll für alte Version von Keras in Ordnung sein, aber unter Verwendung von Keras 2.0.0 tensorflow 1.0.0 als Backend verwendet (Python 2.7), wird es falsche Informationen sein: 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 das gleiche Ziel (self.model.add(Merge(models, mode='concat'))) zu erreichen oder, wie die Zusammenführung verwenden/Merge-Schicht Keras 2.0.0 verwenden? Vielen Dank im Voraus.

Antwort

10

Ich glaube, Sie von der falschen Stelle importieren. Sie tun sollten:

from keras.layers import Merge 

dieses Github post Siehe für weitere Details über merge/Merge und wie sie verwendet werden.

Aus demselben Github post sind folgende zwei Code-Schnipsel-Äquivalent.

Keras 1.2.2 Code:

from keras.engine import merge 
m = merge([init, x], mode='sum') 

Equivalent Keras 2.0.2 Code:

from keras.layers import add 
m = add([init, x]) 
+3

Vielen Dank für Ihre Antwort, aber es ist etwas falsch mit ihm. Hier ist der Fehler. /Users/pengjuzhao/anaconda/lib/python2.7/site-packages/keras/legacy/layers.py:66: UserWarning: Die 'Merge' Schicht ist veraltet und wird nach 08/2017 entfernt werden. Verwenden Sie stattdessen Ebenen von 'keras.layers.merge', z. 'Add',' concatenate' usw. warnings.warn ('Die 'Merge' Schicht ist veraltet''. Es scheint, dass die Merge-Schicht aus Keras 2.0 entfernt wurde. Aber die Methode 'keras.layers.merge. concat' ist nicht vorhanden. –

+0

ja. ich glaube, Sie auf GitHub ein Problem Datei sollte – Antoine

+0

haben versucht, Sie ‚keras.layers.merge.Concatenate‘ verwenden? – Nilesh

Verwandte Themen