首页 > 解决方案 > 如何处理包含在具有不同大小的元素列表中的数据来训练 LSTM?

问题描述

:)

首先,我想为我的英语可能不是很好,因为它不是我的母语而道歉。之后,我暴露了我的问题:

我是 Python/Keras 的新手,目前,我正在使用 LSTM 解决序列到序列的问题。在这里:我得到了一个机器人手臂运动学的数据集。所有运动学具有相同的列数,但行数不同(行代表时间步长)。我有 24 个运动学作为训练数据,我想将它提供给 LSTM。所以,我创建了一个包含 24 个元素的列表。问题是当我想创建一个 LSTM 时,我必须指定“input_shape”参数(根据运行部分代码后发生的错误)。但问题是我不知道我必须放在“input_shape”上的值,因为我的训练数据是具有不同时间量的运动学列表。我所知道的是我有一个包含 24 个元素的列表,每个元素有 76 列。这是我运行的代码部分:

model = Sequential()
model.add(LSTM(100))
model.add(Dense(1, activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics= 
['accuracy'])
print(model.summary())

这是发生的错误:`

Traceback (most recent call last):
  File "<input>", line 4, in <module>
  File "C:\Users\Pctec\Desktop\venv\lib\site-packages\keras\models.py", line 
454, in add
    raise ValueError('The first layer in a '
ValueError: The first layer in a Sequential model must get an 'input_shape' 
or 'batch_input_shape' argument.`

之后,我搜索了问题的解决方案并发现了这个: https ://machinelearningmastery.com/prepare-univariate-time-series-data-long-short-term-memory-networks/

它给了我一些关于我应该做什么的想法,但是,作者提出了一个已知时间步数的示例,这与我正在研究的情况不同。

我不知道我是否就我的问题提供了足够的详细信息,因为就像我说的那样,我仍然是初学者,但也许有人可以帮助我解决这个问题。

那么,我应该根据什么为 LSTM 指定 input_shape 的值?

谢谢 :)

标签: pythontensorflowkeraslstm

解决方案


推荐阅读