首页 > 解决方案 > LSTM 拟合错误:data[0].shape = [3] 不以 indices[0].shape = [2] 开头

问题描述

我正在制作 LSTM 时间序列预测代码,但出现错误。

我的代码是:

-*- coding: utf-8 -*-
import pandas as pd

train = pd.read_csv("./data/train.csv")
test = pd.read_csv("./data/test.csv")

train['date'] = pd.to_datetime(train['date'])
train['weekday'] = train['date'].dt.weekday

train = pd.get_dummies(train,columns=['weekday'])
test['date'] = pd.to_datetime(test['date'])
test['weekday'] = test['date'].dt.weekday
test = pd.get_dummies(test,columns=['weekday'])

train['in_out'].value_counts()

train['in_out'] = train['in_out'].map({'inner':0,'outer':1})
test['in_out'] = test['in_out'].map({'inner':0,'outer':1})

import numpy
import matplotlib.pyplot as plt
import pandas
import math
from tensorflow import keras
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
from tensorflow.keras.layers import LSTM
from sklearn.preprocessing import MinMaxScaler
from sklearn.metrics import mean_squared_error

input_var=['6~7_ride', '7~8_ride', '8~9_ride', '9~10_ride','10~11_ride', '11~12$
target=['18~20_ride']

X_train=train[input_var]
y_train=train[target]

X_test=test[input_var]

trainxnp = X_train.to_numpy().reshape(415423,1,19)
trainynp = y_train.to_numpy().reshape(415423,1,1)

import tensorflow as tf
import numpy as np

model = Sequential()
model.add(LSTM(4, input_shape=(None, 19)))
model.add(Dense(1))
model.compile(loss='mean_squared_error', optimizer='adam')

model.fit(trainxnp, trainynp, epochs=100, batch_size=1, verbose=2)
model.save('models.h5')

但是..得到这个错误

data[0].shape = [3] does not start with indices[0].shape = [2]

我用谷歌搜索了这个错误,但我无法解决这个问题。我更改了我的模块版本(tf -> 2.0.0,numpy -> 1.16.6)

请帮忙!

标签: tensorflowkeraslstm

解决方案


推荐阅读