了解 LSTM - 层数据维度
Understanding LSTMs - layers data dimensions
我不明白 LSTM 层是如何输入数据的。
LSTM 层需要三个维度 (x,y,z)
。
我确实有一个时间序列数据集:总共 2900 行,从概念上讲应该将其分成 23 个连续行的组,其中每行由 178 个特征描述。
从概念上讲,每 23 行我就有一个关于新患者的 23 行长的新序列。
以下说法正确吗?
x
样本 = 23 行长的序列束的数量 - 即 len(dataframe)/23
y
时间步长 = 每个序列的长度 - 在这里假设域为 23。
z
特征大小 = 每行的列数 - 在本例中为 178。
因此x*y = "# of rows in the dataset"
假设这是正确的,在这种情况下训练模型时批量大小是多少?
可能是训练时一个时期考虑的样本数?
因此,通过使 x
(样本数)等于 200,将 batch_size
设置为大于 200 是没有意义的,因为这是我的上限 - 我没有更多要训练的数据。
我将您的描述解读为您的总数据集包含 2900 个数据样本。其中每个数据样本有 23 个时隙,每个时隙有一个 178 维的向量。
如果是这种情况,您模型的 input_shape 应定义为 (23, 178)。批量大小很简单,即用于训练/测试/预测的样本数量(2900 个)运行。
尝试以下操作:
from keras.models import Sequential
from keras.layers import Dense, LSTM
model = Sequential()
model.add(LSTM(64, input_shape=(23,178)))
model.compile(loss='mse', optimizer='sgd')
model.summary()
print model.input
这只是一个简单的模型,它为每个样本输出一个 64 宽向量。您会看到预期的 model.input 是:
Tensor("lstm_3_input:0", shape=(?, 23, 178), dtype=float32)
batch_size 未在输入形状中设置,这意味着该模型可用于训练/预测不同大小的批次。
我不明白 LSTM 层是如何输入数据的。
LSTM 层需要三个维度 (x,y,z)
。
我确实有一个时间序列数据集:总共 2900 行,从概念上讲应该将其分成 23 个连续行的组,其中每行由 178 个特征描述。 从概念上讲,每 23 行我就有一个关于新患者的 23 行长的新序列。
以下说法正确吗?
x
样本 = 23 行长的序列束的数量 - 即len(dataframe)/23
y
时间步长 = 每个序列的长度 - 在这里假设域为 23。z
特征大小 = 每行的列数 - 在本例中为 178。
因此x*y = "# of rows in the dataset"
假设这是正确的,在这种情况下训练模型时批量大小是多少?
可能是训练时一个时期考虑的样本数?
因此,通过使 x
(样本数)等于 200,将 batch_size
设置为大于 200 是没有意义的,因为这是我的上限 - 我没有更多要训练的数据。
我将您的描述解读为您的总数据集包含 2900 个数据样本。其中每个数据样本有 23 个时隙,每个时隙有一个 178 维的向量。
如果是这种情况,您模型的 input_shape 应定义为 (23, 178)。批量大小很简单,即用于训练/测试/预测的样本数量(2900 个)运行。
尝试以下操作:
from keras.models import Sequential
from keras.layers import Dense, LSTM
model = Sequential()
model.add(LSTM(64, input_shape=(23,178)))
model.compile(loss='mse', optimizer='sgd')
model.summary()
print model.input
这只是一个简单的模型,它为每个样本输出一个 64 宽向量。您会看到预期的 model.input 是:
Tensor("lstm_3_input:0", shape=(?, 23, 178), dtype=float32)
batch_size 未在输入形状中设置,这意味着该模型可用于训练/预测不同大小的批次。