[英]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)
ingredients
和documents
输入层中提到的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.