我有一列包含1003个不同类别的分类数据,而且我有很多具有常规整数数据的列。我想在列中嵌入分类数据,并将嵌入的输出与所有其他列一起作为模型的输入。我不确定如何做到这一点,但已尝试使用合并下面的代码。不幸的是,这会产生值错误:'"" concat"模式只能合并具有匹配输出形状的图层(concat轴除外)。图层形状:[(无,1,11),(无,53)]' 。
非常感谢任何帮助。
hidden_layers = [1000,500,500]
embedding = Sequential()
embedding.add(1003, 11, input_length = 1))
model1 = Sequential()
model1.add(Dense(53, input_dim=53, activation='relu'))
model = Sequential()
model = model.add(Merge([embedding, model1], mode = 'concat'))
for i, layer_size in enumerate(hidden_layers):
model.add(Dense(layer_size, activation='relu'))
model.add(Dense(self.output_layers, activation='linear'))
model.compile(optimizer = 'adam', loss = 'mse')
答案 0 :(得分:3)
Embedding图层会生成3D张量,如错误消息(无,1,11)中所示,其中1是要嵌入的序列长度。为了与2D张量合并,你必须将其展平:
embedding = Sequential()
embedding.add(Embedding(1003, 11, input_length = 1))
embedding.add(Flatten())
将给出(None,11)并且可以与(None,53)合并。