当前位置: 移动技术网 > IT编程>脚本编程>Python > 解决ValueError: cannot reshape array of size 2328750 into shape (200,234,1)

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

2020年07月16日  | 移动技术网IT编程  | 我要评论

报这种错误的原因主要是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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网