繁体   English   中英

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

[英]Keras Model Misinterprets Input Data Shape

我有一个发电机,其yield以下结果:

yield {'ingredients': ingredients, 'documents': documents}, labels

yield'd迭代器具有以下形状:

ingredients.shape (10, 46) documents.shape (10, 46) labels.shape (10,)

将这个迭代器输入模型后,我得到以下信息:

ValueError: Error when checking input: expected ingredients to have shape (1,) but got array with shape (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)

ingredientsdocuments输入层中提到的input_shape是(1)。 但是,成分的形状是(10,46),文档的形状是(10,46)。 这里的10是样本数。

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

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

这应该可以修复该错误。 实际上,输入具有46个尺寸或46个特征。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM