具有多个时间序列的LSTM

2024-04-24 20:14:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在一个结构为450x801的数组中训练多个时间序列的LSTM。有450个时间序列,每个时间序列有801个时间步。 标签是分配了从1到6的整数的类,因此标签的维数是450x1。这是我的建议:

这是我的密码:

def readData():
labels = pd.read_csv('label.csv', header = None)
labels = labels.values
data = pd.read_csv('data.csv', header = None)
return data, labels

data, labels = readData()

data_train, data_test, labels_train, labels_test = train_test_split(data, labels)

model = Sequential()
model.add(LSTM(units=32, input_shape = (450,801,1)))
model.add(Dense(6, activation='softmax'))
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])

但是,我发现以下错误:

输入0与层lstm\u 3不兼容:预期ndim=3,发现ndim=4

知道怎么解决吗?你知道吗


Tags: csvtestnonereaddatalabelsmodel时间
1条回答
网友
1楼 · 发布于 2024-04-24 20:14:10

它现在起作用了。最终代码:

def readData():
labels = pd.read_csv('label.csv', header = None)
labels = labels.values
labels = to_categorical(labels)
data = pd.read_csv('data.csv', header = None)
return data, labels

data, labels = readData()
data = np.expand_dims(data, axis=-1)

data_train, data_test, labels_train, labels_test = train_test_split(data, labels)

model = Sequential()
model.add(LSTM(units=32, input_shape = (801,1)))
model.add(Dense(6, activation='softmax'))
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])

相关问题 更多 >