解决ValueError: cannot reshape array of size 2328750 into shape (200,234,1)
程序员文章站
2022-05-21 12:17:48
报这种错误的原因主要是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