无法从 'keras.layers' 导入名称 'Merge'
Cannot import name 'Merge' from 'keras.layers'
我尝试了 运行 代码,但我发现 Keras
的合并层存在问题。我正在使用 python 3 和 keras
2.2.4
这是代码的代码部分
import numpy as np
import pandas as pd
from keras.models import Sequential
from keras.layers import LSTM, Embedding, TimeDistributed, Dense, RepeatVector, Merge, Activation
from keras.preprocessing import image, sequence
import cPickle as pickle
def create_model(self, ret_model = False):
image_model = Sequential()
image_model.add(Dense(EMBEDDING_DIM, input_dim = 4096, activation='relu'))
image_model.add(RepeatVector(self.max_length))
lang_model = Sequential()
lang_model.add(Embedding(self.vocab_size, 256, input_length=self.max_length))
lang_model.add(LSTM(256,return_sequences=True))
lang_model.add(TimeDistributed(Dense(EMBEDDING_DIM)))
model = Sequential()
model.add(Merge([image_model, lang_model], mode='concat'))
model.add(LSTM(1000,return_sequences=False))
model.add(Dense(self.vocab_size))
model.add(Activation('softmax'))
print ("Model created!")
这是错误信息
from keras.layers import LSTM, Embedding, TimeDistributed, Dense, RepeatVector, Merge, Activation
ImportError: cannot import name 'Merge' from 'keras.layers'
Keras +2 不支持 Merge
。相反,您需要使用 Concatenate
图层:
merged = Concatenate()([x1, x2]) # NOTE: the layer is first constructed and then it's called on its input
或其等效的功能接口concatenate
(以小写c
开头):
merged = concatenate([x1,x2]) # NOTE: the input of layer is passed as an argument, hence named *functional interface*
如果您对其他形式的合并感兴趣,例如加法、减法等,然后就可以使用相关图层了。有关合并层的完整列表,请参阅 documentation。
我尝试了 运行 代码,但我发现 Keras
的合并层存在问题。我正在使用 python 3 和 keras
2.2.4
这是代码的代码部分
import numpy as np
import pandas as pd
from keras.models import Sequential
from keras.layers import LSTM, Embedding, TimeDistributed, Dense, RepeatVector, Merge, Activation
from keras.preprocessing import image, sequence
import cPickle as pickle
def create_model(self, ret_model = False):
image_model = Sequential()
image_model.add(Dense(EMBEDDING_DIM, input_dim = 4096, activation='relu'))
image_model.add(RepeatVector(self.max_length))
lang_model = Sequential()
lang_model.add(Embedding(self.vocab_size, 256, input_length=self.max_length))
lang_model.add(LSTM(256,return_sequences=True))
lang_model.add(TimeDistributed(Dense(EMBEDDING_DIM)))
model = Sequential()
model.add(Merge([image_model, lang_model], mode='concat'))
model.add(LSTM(1000,return_sequences=False))
model.add(Dense(self.vocab_size))
model.add(Activation('softmax'))
print ("Model created!")
这是错误信息
from keras.layers import LSTM, Embedding, TimeDistributed, Dense, RepeatVector, Merge, Activation
ImportError: cannot import name 'Merge' from 'keras.layers'
Merge
。相反,您需要使用 Concatenate
图层:
merged = Concatenate()([x1, x2]) # NOTE: the layer is first constructed and then it's called on its input
或其等效的功能接口concatenate
(以小写c
开头):
merged = concatenate([x1,x2]) # NOTE: the input of layer is passed as an argument, hence named *functional interface*
如果您对其他形式的合并感兴趣,例如加法、减法等,然后就可以使用相关图层了。有关合并层的完整列表,请参阅 documentation。