多张图像输入同一ResNet模型出现数据基数不匹配输入报错问题
错误原因
你构建的是3输入的Keras模型,要求输入为长度为3的列表,列表内每个元素是首维度为总样本数的数组,分别对应3个输入分支。你当前的testX是嵌套结构,Keras会将其展开识别为9个独立输入,每个输入的首维度为224,和标签的3个样本数量不匹配,因此触发cardinality错误。
修复方案
重新组织输入数据结构,代码如下:
import numpy as np # 按三个输入分支分别组装所有样本 input_base = np.array([images[0], images[3], images[6]]) input_1 = np.array([images[1], images[4], images[7]]) input_2 = np.array([images[2], images[5], images[8]]) # 按模型定义的输入顺序组装 testX = [input_base, input_1, input_2] # 标签转为numpy数组避免格式问题 testY = np.array(testY)
额外注意点
你当前输出层的激活函数选择有误:二分类任务使用1个输出神经元时,激活函数需替换为sigmoid,softmax作用于单神经元时输出恒为1,无法完成二分类判断,修改如下:
output = Dense(1, activation='sigmoid')(dense_2)
调整完成后即可正常调用fit方法训练。
内容的提问来源于stack exchange,提问作者Christopher Koho
相关产品推荐
相关产品推荐

