欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2023-09-17 23:18:56
报这种错误的原因主要是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 不等于三个数相乘的倍数(包括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