我一直在努力为我的数据开发LSTM。因此,如果这篇文章有太多多余的内容,请多多包涵。
根据我的数据,要素分别由12500条线组成,其中每行有2列。对于此测试,我有90个。 (我将把这个90扩展到更多)。因此,我将以下形状和类型传递给我的LSTM:
(90, 12500, 2)
<class 'numpy.ndarray'>
例如
x_train[0]
array([[ 28.15149259, -21.2996635 ],
[ 45.98779437, -34.60591158],...
标签每个由1行组成,每行有4列。因此,我将以下形状传递给LSTM:
(90, 4)
<class 'numpy.ndarray'>
例如y_train[0]
array([-0.05552651, -0.1108113 , 0.02395229, 0.04790576])
我想为每个新功能预测这4个数字(例如概率或类别)。
对于我的Keras模型,我具有以下内容:
model = Sequential()
model.add(LSTM(4, input_shape=(12500, 2))) # With 32 it will not work but with 4 it will;
model.add(Dense(4))
#model.compile(loss='mean_squared_error', optimizer='adam')
model.compile(loss='mae', optimizer='adam')
model.fit(x_train, y_train, nb_epoch=1, batch_size=30, verbose=1)
这种方法有意义吗?代码正在运行,换句话说,模型合适,我可以做出预测。我的问题更多是关于如何正确配置图层。
侧面说明:在这种情况下,我们有12500个对象,因为它们是对电信号脉冲的引用。例如,这12500中的每一个都是在毫秒内进行的测量。