Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Keras 转换LSTM输入数据集中的序列_Keras_Lstm - Fatal编程技术网

Keras 转换LSTM输入数据集中的序列

Keras 转换LSTM输入数据集中的序列,keras,lstm,Keras,Lstm,我对python和LSTM完全陌生。我的数据集如下所示(超过600个标签): 标签、序列 1,18 2 32 38 20 3314 3315 3316 3317 3318 3319 1536794795960 25335336 26 27 1296232425283362627 111230283362627 229624241955195534827437 211231426372437143715371537155293903913915391 31300 31300 1320 1321 1

我对python和LSTM完全陌生。我的数据集如下所示(超过600个标签):

标签、序列

1,18 2 32 38 20 3314 3315 3316 3317 3318 3319

1536794795960 25335336 26 27

1296232425283362627

111230283362627

229624241955195534827437

211231426372437143715371537155293903913915391

31300

31300 1320 1321 1322 1322

31303 1304 1305 1306 1307 1309 1357 1333

31323 1324 1325 1326 1327 1328

31300 1320

所以当我搜索输入数据时,Keras中的LSTM必须是3D形状。我不知道如何将这些数据转换成合适的格式。我找到了这些代码,但不确定如何使用:

model=Sequential()
添加(LSTM(128,输入_形=(10,16))
model.add(密集型(1,激活='sigmoid'))
compile(loss='binary\u crossentropy',optimizer='sgd')
#拟合模型
模型拟合(X,y,历次=3,批次=16)

请告诉我如何重塑我的数据集?

每个标签都有不同长度的序列,第一步是将所有序列填充到某个最大长度。您将获得类似于
(示例,最大长度,1)
。现在您可以传递到
LSTM(…,输入形状=(最大长度,1))
。为了让LSTM跳过时间步,您在LSTM之前使用了一个层。因此填充序列将重塑数据,屏蔽将跳过填充的数据,LSTM将立即处理该序列。

谢谢,这确实是一个很大的帮助。因此,我实现了一个代码,该代码将训练集和测试集设置为2D数组(例如,(2000500)和(857500)分别)和训练标签和测试标签1D数组(2000)和(875)。我有两个问题:1)如何将这些数组重塑为适合LSTM的格式?2) 我发现了如下掩蔽:model.add(掩蔽(mask_value=0.,input_shape=(timesteps,features))),在我的例子中,什么是timesteps和features?我也找到了这个:mx=ma.masked_值(x,-9999。)但不确定哪一个更适合我的数据集?