天才小熊猫喲 2021-02-25 22:58 采纳率: 0%
浏览 2753

数据长度不一致报错Data cardinality is ambiguous

问题:用了网上大佬的方法训练自己的模型识别辛普森人物,但是每当进行到如下训练函数:

training = model.fit(train_gen, steps_per_epoch=len(x_train)//BATCH_SIZE, epochs=EPOCHS, validation_data=(x_val,y_val),        validation_steps=len(y_val)//BATCH_SIZE, callbacks=callbacks_list)

就会报错,并提示我X和Y的形状不同。

我观察了一下,是一轮训练完成后报的错,我在此函数之前设置如下监测:print(x_train.shape)    print(y_train.shape)

输出为:(11047, 80, 80, 1)和(11047, 10)。

此为本段上下文代码:

datagen = canaro.generators.imageDataGenerator()

x_train = np.array(x_train)
y_train = np.array(y_train)
train_gen = datagen.flow(x_train, y_train, batch_size=BATCH_SIZE)


#创建模型
model = canaro.models.createSimpsonsModel(IMG_SIZE=IMG_SIZE, channels=channels, output_dim=len(characters), loss='binary_crossentropy', decay=1e-6, learning_rate=0.001, momentum=0.9, nesterov=True)
# model.summary()输出模型摘要


#回调列表
from tensorflow.keras.callbacks import LearningRateScheduler
callbacks_list = [LearningRateScheduler(canaro.lr_schedule)]

print(x_train.shape)
print(y_train.shape)

#开始训练!
training = model.fit(train_gen, steps_per_epoch=len(x_train)//BATCH_SIZE, epochs=EPOCHS, validation_data=(x_val,y_val), validation_steps=len(y_val)//BATCH_SIZE, callbacks=callbacks_list)

以下为错误信息:


  File "C:\Users\abner\Desktop\文件夹\编程\编程项目\python\opencv\高级课程3:opencv深度学习网络识别辛普森人物.py", line 92, in <module>
    training = model.fit(train_gen, steps_per_epoch=len(x_train)//BATCH_SIZE, epochs=EPOCHS, validation_data=(x_val,y_val), validation_steps=len(y_val)//BATCH_SIZE, callbacks=callbacks_list)

  File "C:\Users\abner\anaconda3\lib\site-packages\tensorflow\python\keras\engine\training.py", line 1118, in fit
    self._eval_data_handler = data_adapter.DataHandler(

  File "C:\Users\abner\anaconda3\lib\site-packages\tensorflow\python\keras\engine\data_adapter.py", line 1100, in __init__
    self._adapter = adapter_cls(

  File "C:\Users\abner\anaconda3\lib\site-packages\tensorflow\python\keras\engine\data_adapter.py", line 274, in __init__
    _check_data_cardinality(inputs)

  File "C:\Users\abner\anaconda3\lib\site-packages\tensorflow\python\keras\engine\data_adapter.py", line 1529, in _check_data_cardinality
    raise ValueError(msg)

 

初学者看不出来怎么改,不敢乱改,求大佬们帮帮忙!
 

  • 写回答

2条回答 默认 最新

  • JiNe128256 2021-09-01 01:45
    关注

    我也是这个问题,请问题主现在解决了吗

    评论

报告相同问题?

悬赏问题

  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 运筹学排序问题中的在线排序
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥30 python代码,帮调试,帮帮忙吧