【问题标题】:How to compute stride mean in Pytorch?如何在 Pytorch 中计算步幅平均值?
【发布时间】:2021-01-08 22:19:16
【问题描述】:

例如,我们有x = [1, 2, 3, 4, 5]stride = 3step = 1,那么步幅平均值将为result = [2, 3, 4]。更具体地说,我有一个带有shape = (batch_size, sequence_len, embed_dim) 的向量,我想对dim = 1 (sequence_len) 执行上述操作。如何在 PyTorch 中有效地实现它?

【问题讨论】:

    标签: pytorch


    【解决方案1】:

    我认为您的意思是 - 在 PyTorch 表示法中 - 内核大小为 3,步幅为 1。你可以使用torch.nn.AvgPool1d来执行这种操作:

    mean = nn.AvgPool1d(kernel_size=3, stride=1)
    

    注意,通道需要一个额外的维度来兼容这种层:

    >>> x = torch.tensor([[1, 2, 3, 4, 5]]).unsqueeze(0)
    tensor([[[1, 2, 3, 4, 5]]])
    
    >>> mean(x)
    tensor([[[2, 3, 4]]])
    

    【讨论】:

      猜你喜欢
      • 2021-11-21
      • 1970-01-01
      • 2021-06-23
      • 2019-02-07
      • 2013-12-18
      • 2019-03-16
      • 1970-01-01
      相关资源
      最近更新 更多