解决ValueError: cannot reshape array of size 2328750 into shape (200,234,1)

2022-08-03,,,

报这种错误的原因主要是2328750 不等于三个数相乘的倍数(包括1倍),我碰到错之后,看了一下网上的解决方案好像都没有怎么说清楚这个问题,只简单解释了一下。

如导入数据后,原本的代码是:

y_train = np.array(y_train,dtype='float32').reshape(-1,4)
X_train = np.array(X_train,dtype='float32').reshape(-1,200,234,1))

其中第一个数字要改为

len(X_train[0])

后两位我不确定最后的修改方式,总的原理是要使三个数相乘的倍数=2328750,其中倍数相当于输出列表的长度

在我这个案例中,由于我需要使最后y_train 的个数和X_train 相同,而我的len(y_train[0])=4,最后生成的y_train长度为75。

于是2328750/75=31050,即我的三位数相乘需要等于31050。

同时,由于第一位是len(X_train[0])=230,即后两位的乘积需要是31050/230=135

最后我的代码更改为

X_train = np.array(X_train,dtype='float32').reshape(-1,len(X_train[0]),135,1)

乘积难算的话可以借助一下在线分解质因数的网站

本文地址:https://blog.csdn.net/Netceor/article/details/107330685

《解决ValueError: cannot reshape array of size 2328750 into shape (200,234,1).doc》

下载本文的Word格式文档,以方便收藏与打印。