有没有一种方法可以将2d张量用作Pytorch中MLP的输入?

问题描述

我是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。但是,您应该首先找到导致精度降低的错误,然后再尝试使体系结构更加复杂。

(只是一个旁注:您的输入似乎是来自某些词汇/其他类别特征的整数索引。您首先使用嵌入层吗?)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...