【问题标题】:Is there a way to use a 2d tensor as the input for a MLP in Pytorch?有没有办法在 Pytorch 中使用 2d 张量作为 MLP 的输入?
【发布时间】:2020-12-01 21:14:58
【问题描述】:

我是 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])然后放置它们在数据加载器中,但我想知道是否可以将它们保持为 2d,或者是否有其他方法可以做到这一点?

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

【问题讨论】:

  • 当您使用 MLP 时,鉴于它是完全连接的,形状和顺序都无关紧要。

标签: python pytorch mlp


【解决方案1】:

多层的感知(MLP)是一系列致密层。输入和每个层的输出都是一维向量。无法明确考虑到输入的顺序性质。另一方面,如果顺序属性从数据清除,则很可能会隐含地学习它。因此,它非常不太可能是低分类精度的原因。

如果要利用数据的顺序性,可以使用批量×3×4张量的RNN。但是,您应该先找到导致低精度的错误,只有这样的实验,使架构更加复杂。

(只是一个side-note:似乎您的输入是来自某些词汇/其他类别功能的整数索引。您是否首先使用嵌入层?)

【讨论】:

    猜你喜欢
    • 2022-06-21
    • 2016-12-09
    • 2023-02-18
    • 2017-11-01
    • 2019-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多