ValueError:检查目标时出错:预期(keras 序列模型层)具有 n 维,但得到的数组具有形状
Posted
技术标签:
【中文标题】ValueError:检查目标时出错:预期(keras 序列模型层)具有 n 维,但得到的数组具有形状【英文标题】:ValueError: Error when checking target: expected (keras Sequence model layer) to have n dimensions, but got array with shape 【发布时间】:2020-04-12 10:31:22 【问题描述】:我已加载图像以训练我的模型识别这些图像中的一个特征。
Xtrain 是一个形状为(1380,200,200,3 )
的 numpy ndarray,包含 1380 张 200 x 200 像素的 RGB 格式图像
Ytrain 有目标。形状 (1380,2)
当我训练我的模型 (model.fit(Xtrain,Ytrain)
) 时,我似乎在每个层上都得到了一个值错误。好像输入既是Xtrain
,又是Ytrain
...
ValueError:检查目标时出错:预期
batch_normalization_24
有 4 个维度,但得到了形状为(1380, 2)
的数组
图片:
【问题讨论】:
【参考方案1】:Keras 的批量归一化层输出的形状与其输入相同。由于您只有两个标签,因此顺序模型中的最后一层应该生成两个输出。您可以考虑添加Dense
层,例如:
model.add(Dense(2), activation='relu')
我还建议使用 print(model.summary())
检查您的模型架构,并确保输入和输出与您的数据集匹配,反之亦然。
【讨论】:
以上是关于ValueError:检查目标时出错:预期(keras 序列模型层)具有 n 维,但得到的数组具有形状的主要内容,如果未能解决你的问题,请参考以下文章
ValueError:检查目标时出错:预期activation_6 的形状为(70,)但得到的数组形状为(71,)
ValueError:检查目标时出错:预期dense_4的形状为(4,)但得到的数组形状为(1,)
ValueError:检查目标时出错:预期dense_3的形状为(1,)但得到的数组形状为(2,)
ValueError:检查目标时出错:预期activation_6具有形状(无,2)但得到的数组具有形状(5760,1)
ValueError:检查目标时出错:预期 activation_17 具有 2 维,但得到的数组形状为 (1, 256, 256, 3)
ValueError:检查目标时出错:预期 main_prediction 有 3 个维度,但得到了形状为 (1128, 1) 的数组