将Keras嵌入与常规模型合并为一个顺序模型

时间:2019-03-26 18:48:06

标签: tensorflow keras neural-network deep-learning keras-layer

我想将具有普通模型的keras嵌入合并到一个顺序模型中,如本repository

中的笔记本中一样
from keras.layers import *
from keras.models import *

models = []

for categoical_var in categorical_vars :
    model = Sequential()
    model.reset_states( )
    no_of_unique_cat  = df[categoical_var].nunique()
    embedding_size = min(np.ceil((no_of_unique_cat)/2), 50 )
    embedding_size = int(embedding_size)
    model.add(  Embedding( no_of_unique_cat+1, embedding_size, input_length = 1 ) )
    model.add(Reshape(target_shape=(embedding_size,)))
    models.append( model )


model_rest = Sequential()
model_rest.add(Dense(  64 , input_dim = 6 ))
model_rest.reset_states( )
models.append(model_rest)

full_model = Sequential()
full_model.add(Merge(models, mode='concat'))

full_model.add(Dense(512))
full_model.add(Activation('sigmoid'))
full_model.add(Dropout(0.2))

full_model.add(Dense(32))
full_model.add(Activation('sigmoid'))
full_model.add(Dropout(0.2))

full_model.add(Dense(1))

full_model.compile(loss='mean_squared_error', optimizer='Adam',metrics=['mse','mape'])

问题在于新版本的keras不再使用“合并”了,我尝试使用Concatenate,但不适用于顺序模型

有帮助吗?我查看了this,但这是一个不同的问题

0 个答案:

没有答案