调用Keras的model.fit训练时触发含多元素数组真值模糊的ValueError
报错根因
model.fit()的validation_data参数要求传入(验证特征, 验证标签)格式的元组(需带样本权重的场景下为三元组),你直接传入了单个数组X_val,Keras内部执行if validation_data的逻辑判断时,需要将参数转为布尔值,而多元素Numpy数组直接转布尔值的规则不明确,因此触发该报错。
另外你当前的fit调用也缺少训练标签参数,有监督训练场景下需要同时传入y_train作为第二个位置参数。
解决方法
根据你的训练场景选择对应修改方案:
- 有监督训练(存在训练标签
y_train和验证标签y_val):
将训练标签和验证集元组传入对应参数,修改后代码如下:
history = model.fit(X_train, y_train, epochs=10, validation_data=(X_val, y_val), callbacks=callbacks)
- 无监督训练(如自编码器,无需单独标签,输入即目标):
将输入同时作为标签传入,修改后代码如下:
history = model.fit(X_train, X_train, epochs=10, validation_data=(X_val, X_val), callbacks=callbacks)
内容的提问来源于stack exchange,提问作者Bruna Stofel
相关产品推荐
相关产品推荐

