GRU预测代码如下,想实现通过取前n_train天数据预测predict_len天数,比如我要用前8天的数据预测后面22天的数据,但是用前8天的数据,会报错输出数据与输入的维度不一致,应该怎么解决?
# 预测未来数据
net.eval()
state = None
with torch.no_grad():
y_list, y_hat_list = [], []
y_list.append(all_data * (max_data - min_data) + min_data)
for i in range(1, n_train): # 取n_train天数据
inputs = test_x[i - 1, 0].unsqueeze(1).unsqueeze(1)
pred = inputs.squeeze().cpu().numpy().flatten() * (max_data - min_data) + min_data
y_hat_list.append(pred)
for i in range(n_train, predict_len + n_train + 1): # 预测predict_len天数据
inputs = torch.tensor(y_hat_list[-i:]).unsqueeze(1).float().to(device)
output, state = net(inputs, state)
pred = output.squeeze().cpu().numpy().flatten() * (max_data - min_data) + min_data
y_hat_list.append(pred)
print(f"第{i}天预测值:{pred.round(2)}")
y_hat_list.append(pd.Series([pred], index=range(len(pred)))) # 将预测值转换为 Pandas Series 对象并添加到 y_list 中
报错如下: