ValueError:检查目标时出错:预期dense_4的形状为(4,)但得到的数组形状为(1,)

Posted

技术标签:

【中文标题】ValueError:检查目标时出错:预期dense_4的形状为(4,)但得到的数组形状为(1,)【英文标题】:ValueError: Error when checking target : expected dense_4 to have shape (4, ) but got array with shape (1, ) 【发布时间】:2019-08-01 10:42:09 【问题描述】:

我已经为我自己的数据集尝试了这个模型(“https://github.com/LZQthePlane/Online-Realtime-Action-Recognition-based-on-OpenPose”)(我已经给出了坐姿动作视频并转换为 csv 文件)。 CSV 文件包含 1000 条记录。 现在在 action_enum.py 我只有 sat action 。 在 train.py 文件中,我更改了

encoder_Y = [0]*744 + [1]*722 + [2]*815 + [3]*1008

encoder_Y = [0]*1000(仅用于坐姿)。 更改 train.py 文件后,出现此错误。

【问题讨论】:

【参考方案1】:

因为你只有一个类,你应该改变你的模型只输出一个值。

Action/training/train.py:

# build keras model
model = Sequential()
model.add(Dense(units=128, activation='relu'))
model.add(BatchNormalization())
model.add(Dense(units=64, activation='relu'))
model.add(BatchNormalization())
model.add(Dense(units=16, activation='relu'))
model.add(BatchNormalization())
# change 4 to 1
model.add(Dense(units=1, activation='softmax'))

【讨论】:

以上是关于ValueError:检查目标时出错:预期dense_4的形状为(4,)但得到的数组形状为(1,)的主要内容,如果未能解决你的问题,请参考以下文章

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) 的数组