我有一个生成器,它的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,)
以下是产生上述错误的模型代码:
# 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)发布于 2019-03-08 09:58:44
ingredients和documents输入层中提到的input_shape是(1 )。但是,成分的形状是( 10,46 ),文档的形状是( 10,46 )。这里10是样本的数量。
您正在将模型初始化为具有shape ( None,1 )的输入。应该是(无,46 )。因此,您可以进行这些更改。
ingredients = Input( name='ingredients', shape=( 46 , ) )
documents = Input( name='documents', shape=( 46 , )这应该可以修复错误。实际上,输入有46个维度或46个特征。
https://stackoverflow.com/questions/55054183
复制相似问题