繁体   English   中英

经常出现的 Python 神经网络 - 重塑 () 错误

[英]Recurrent Python Neural Networks - Reshape () Error

下面的脚本使用循环神经网络创建 arrays 用于数据预测,如果我将周期设置为 4,脚本运行,但我有一个 5 值输入,如何修复我的重塑?

数据集

3519    2019-10-31 19:00:00 55.6716
3550    2019-10-31 20:00:00 70.6110
3664    2019-10-31 21:00:00 97.0794
3789    2019-10-31 22:00:00 65.6901
3911    2019-10-31 23:00:00 65.3645

脚本

base = base.dropna()
base = base.iloc[:,2].values

periodos = 5
previsao_futura = 1 # horizonte

X = base[0:(len(base) - (len(base) % periodos))]
X_batches = X.reshape(-1, periodos, 1)

y = base[1:(len(base) - (len(base) % periodos)) + previsao_futura]
y_batches = y.reshape(-1, periodos, 1)

X_teste = base[-(periodos + previsao_futura):]
X_teste = X_teste[:periodos]
X_teste = X_teste.reshape(-1, periodos, 1)
y_teste = base[-(periodos):]
y_teste = y_teste.reshape(-1, periodos, 1)

OUTPUT

Traceback (most recent call last):
  File "ConsumptionAnalysisNeuralNetwork.py", line 40, in <module>
    y_batches = y.reshape(-1, periodos, 1)
ValueError: cannot reshape array of size 4 into shape (5,1)

如果 base 的大小为 5(例如[0,1,2,3,4] ):

>>> base[1:6]
[1,2,3,4]

哪个尺寸是 4 而不是 5。所以你需要确保len(base) >= periodos + 1

或替换y = base[1:(len(base) - (len(base) % periodos)) + previsao_futura]
y = base[0:(len(base) - (len(base) % periodos))]

这有点取决于previsao_futura的目的。

y = base[1:(len(base) - (len(base) % periodos)) + previsao_futura]计算为y=base[1:5]所以长度为 4。你需要第 6 个条目这行得通。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM