Python Keras模型误解了输入数据的形状

Python Keras模型误解了输入数据的形状,python,tensorflow,keras,Python,Tensorflow,Keras,我有一个发电机,它产生以下结果: 产生{'components':成分,'documents':文档},标签 屈服迭代器具有以下形状: 成分。形状10,46文件。形状10,46标签。形状10 一旦该迭代器通过do my model输入,我将得到以下结果: ValueError:检查输入时出错:预期成分的形状为1,但得到的数组的形状为46 以下是产生上述错误的模型代码: # Both inputs are 1-dimensional ingredients = Input(

我有一个发电机,它产生以下结果:

产生{'components':成分,'documents':文档},标签

屈服迭代器具有以下形状:

成分。形状10,46文件。形状10,46标签。形状10

一旦该迭代器通过do my model输入,我将得到以下结果:

ValueError:检查输入时出错:预期成分的形状为1,但得到的数组的形状为46

以下是产生上述错误的模型代码:

    # Both inputs are 1-dimensional
    ingredients = Input(
        name='ingredients',
        shape=[1]
    )
    # ingredients.shape (?, 1) 
    documents = Input(
        name='documents',
        shape=[1]
    )
    # documents.shape (?, 1)

    logger.info('ingredients %s documents shape %s', ingredients.shape, documents.shape)

    ingredients_embedding = Embedding(name='ingredients_embedding',
                                      input_dim=training_size,
                                      output_dim=embedded_document_size)(ingredients) 

    # Embedding the document (shape will be (None, 1, embedding_size))
    document_embedding = Embedding(name='documents_embedding',
                                   input_dim=training_size,
                                   output_dim=embedded_document_size)(documents)
配料和文档输入层中提到的输入形状为1。但是,成分的形状是10,46,文件的形状是10,46。这里10是样本数量

您正在初始化模型,使其输入为形状None,1。应该是零,46。因此,您可以进行这些更改

ingredients = Input( name='ingredients', shape=( 46 , ) ) 
documents = Input( name='documents', shape=( 46 , )

这将修复错误。实际上,输入有46个维度或46个特征。

是的,好主意。我有相同的lol。这将错误转移到:ValueError:新数组的总大小必须保持不变行是问题合并=重塑获取_形状=46,合并