python-3.x - 如何将嵌入式列与 Keras 中的其他输入数据组合

标签 python-3.x tensorflow keras embedding

我有一个包含 1003 个不同类别的分类数据的列,我有很多包含常规整数数据的列。我想用分类数据嵌入该列,并将嵌入的输出与所有其他列一起作为我模型的输入。我不确定如何执行此操作,但已尝试使用合并在以下代码中进行。不幸的是,这会产生一个 Value 错误:'“concat”模式只能合并具有匹配输出形状的图层,但 concat 轴除外。图层形状:[(None, 1, 11), (None, 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')

最佳答案

Embedding层生成一个 3D 张量,如您在错误消息 (None, 1, 11) 中看到的那样,其中 1 是您要嵌入的序列长度。为了与 2D 张量合并,您必须将其展平:

embedding = Sequential()
embedding.add(Embedding(1003, 11, input_length = 1))
embedding.add(Flatten())

这将给出 (None, 11) 并且可以与 (None, 53) 合并。

关于python-3.x - 如何将嵌入式列与 Keras 中的其他输入数据组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50639501/

相关文章:

python - 如何打印在 tensorflow 代码中完成的计算的执行时间?

python - 您能解释一下具有 BatchNormalization 的神经网络中的 Keras get_weights() 函数吗?

Keras实现需要内层输出作为标签的定制损失函数

Python - 不带引号的数字列表

sql-server - 如何使用 Azure 机器学习笔记本连接到 SQL Server 和 Azure SQL 数据库?

python-3.x - 执行时出错 `jupyter notebook`(没有这样的文件或目录)

python - 具有对角权重矩阵的自定义层

python-3.x - 如果所有值都等于 1,则在 pandas 中删除一列?

python - 乘法 tf.range() 的优雅方式

tensorflow - ValueError : Input 0 is incompatible with layer model: expected shape=(None, 14999, 7), 找到形状=(None, 7)