首页 > 解决方案 > ValueError:无法重塑数组

问题描述

我正在关注本教程https://www.youtube.com/watch?v=DtBu1u5aBsc&t=1594s进行面部情绪识别,但在尝试重塑数组大小时遇到​​了麻烦。这是代码:

num_features=64
num_labels=7
batch_size=64
epochs=30
width,height=18,18

X_train=X_train.reshape(X_train.shape[0],width,height,1)

这是回溯:

 Traceback (most recent call last):
        File "emotion_detection.py", line 60, in <module>
             X_train=X_train.reshape(X_train.shape[0],width,height,1)
ValueError: cannot reshape array of size 66145536 into shape (28709,18,18,1)

这是什么意思,我该如何解决?

标签: pythonkeras

解决方案


根据您的大小为 66145536 的 X_train 以及您想要 28709 个“行”(在您的第一维中)的事实,宽度和高度需要为 48。

66145536 / 28709 = 2304

平方(2304)= 48

所以 28709 * 48 * 48 * 1 = 66145536,这与您拥有的数据量相同。

编辑:查看您链接的教程后,他们确实使用 48 作为宽度和高度。您将其更改为 18,这不适用于相同的数据。


推荐阅读