首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Keras模型错误解释输入数据形状

Keras模型错误解释输入数据形状
EN

Stack Overflow用户
提问于 2019-03-08 07:01:24
回答 1查看 20关注 0票数 0

我有一个生成器,它的yield如下:

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

yield'd迭代器的形状如下:

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

一旦这个迭代器通过do my model提供给我,我就会得到以下结果:

ValueError: Error when checking input: expected ingredients to have shape (1,) but got array with shape (46,)

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

代码语言:javascript
复制
    # 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)
EN

回答 1

Stack Overflow用户

发布于 2019-03-08 09:58:44

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

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

代码语言:javascript
复制
ingredients = Input( name='ingredients', shape=( 46 , ) ) 
documents = Input( name='documents', shape=( 46 , )

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55054183

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档