LSTM/RNN 多对一

我有一个化学过程的数据集,由5个连续的输入向量组成,生成1个输出。每个输入每分钟采样一次,而输出每5分钟采样一次。

dataset

我认为输出依赖于前5个输入向量,因此我决定使用LSTM来设计我的模型。经过大量研究LSTM架构后,我得出结论,我应该用零掩盖一些输出序列,只保留最后一个输出。根据我的数据集,最终的架构如下:

lstm architecture

我的问题是:我的3D输入张量的参数应该是什么?例如[5, 5, ?]?还有我的“批量大小”应该是什么?它应该是我样本的数量吗?


回答:

由于您进行的是多对一序列建模,您不需要在输出中填充零(这是不需要的)。最简单的方法是在最后一个时间步进行分类,即在RNN/LSTM看到第5个输入之后。您的3D输入张量的维度将是[batch_size, sequence_length, input_dimensionality],其中sequence_length在您的案例中是5(行1-5, 7-11, 13-17等),input_dimensionality也是5(即列A-E)。批量大小取决于样本的数量(也取决于您数据的可靠性),如果您有超过10,000个样本,那么批量大小为30-50应该可以(阅读这个关于选择合适批量大小的解释)。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注