问题描述
我是Pytorch的新手,我正尝试在Pytorch中训练MLP,以从多组时间序列数据中对变量进行分类。
Example[time,a,b,c]:
{[0,10,15,20] [1,11,17,10] [2,12,6]} -> 1
{[0,9] [1,13,0] [2,18,7]} -> 2
现在,我将每个2d张量重塑为1d(即[0,10,15,20,1,11,17,10,2,12,12,6]),然后将它们放置在Data Loader中,但是我想知道是否可以将它们保持2d,或者是否有其他方法可以实现?
还有,这是否是我的准确性太差的原因(包括培训和测试)?
解决方法
多层感知器(MLP)是一排密集的层。每个层的输入和输出都是一维向量。 MLP不可能如何明确考虑输入的顺序性质。另一方面,如果从数据中清除了顺序属性,则很有可能隐式地学习它。因此,这极有可能不是分类准确率低的原因。
如果要利用数据的顺序性质,可以在批处理×3×4张量上使用RNN。但是,您应该首先找到导致精度降低的错误,然后再尝试使体系结构更加复杂。
(只是一个旁注:您的输入似乎是来自某些词汇/其他类别特征的整数索引。您首先使用嵌入层吗?)