首页 > 解决方案 > 有没有办法在 Pytorch 中使用 2d 张量作为 MLP 的输入?

问题描述

我是 Pytorch 的新手,我正在尝试在 Pytorch 中训练一个 MLP,以对来自多组时间序列数据的变量进行分类。<

 Example[time, a, b, c]: 
    {[0, 10, 15, 20] [1, 11, 17, 10] [2, 12, 12, 6]} -> 1 
    {[0, 10, 12, 9] [1, 15, 13, 0] [2, 18, 11, 7]} -> 2 

现在,我将这些 2d 张量中的每一个重塑为 1d(即 [0, 10, 15, 20, 1, 11, 17, 10, 2, 12, 12, 6]),然后将它们放入 Data Loader,但我想知道是否可以将它们保持为 2d,或者是否有不同的方法可以做到这一点?

另外,这可能是我糟糕的准确性(培训和测试)的原因吗?

标签: pythonpytorchmlp

解决方案


多层感知器 (MLP) 是一系列密集层。每一层的输入和输出都是一维向量。MLP 无法明确考虑输入的顺序性。另一方面,如果从数据中清楚地了解顺序属性,则很可能会隐式学习它。因此,这不太可能是分类精度低的原因。

如果您想利用数据的顺序性,您可以使用 RNN over batch×3×4 张量。但是,您应该首先找到导致低准确度的错误,然后才能尝试使架构更复杂。

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


推荐阅读