【问题标题】:is there a way to transform an numpy array or pytorch tensor?有没有办法转换一个 numpy 数组或 pytorch 张量?
【发布时间】:2020-05-15 15:05:22
【问题描述】:

我一直在图像数据集上尝试一些图像识别神经网络。我的图像在形状为 [39209, 30, 30, 3] 的数组(或张量)中。但是,对于我在 github 上找到的一些代码,我的图像必须是数组形状 [39209, 3, 30, 30]。我以为会有一种快速的方法来转换数组,但事实证明这非常困难。有谁知道这是否可行?

【问题讨论】:

    标签: python arrays image tensor


    【解决方案1】:

    你可以使用torch.transposehttps://pytorch.org/docs/master/generated/torch.transpose.html

    import torch
    
    a = torch.ones((10, 30, 30, 3))
    
    b = torch.transpose(a, 1, -1)
    
    print(b.shape)
    

    torch.Size([10, 3, 30, 30])

    numpy也有transposehttps://docs.scipy.org/doc/numpy/reference/generated/numpy.transpose.html

    【讨论】:

    • 欢迎来到 SO,@JeroenVermunt。如果有帮助,请毫不犹豫地投票/接受答案。
    【解决方案2】:

    你可以使用torch.permute():

    x = torch.randn(1, 32, 32, 3).float()
    
    x.shape
    torch.Size([1, 32, 32, 3])
    
    y = x.permute(0, 3, 1, 2)
    
    y.shape
    torch.Size([1, 3, 32, 32])
    

    【讨论】:

      猜你喜欢
      • 2019-06-13
      • 2019-04-27
      • 2023-02-18
      • 2019-07-29
      • 2018-09-20
      • 2021-03-13
      • 1970-01-01
      • 2021-04-24
      • 2020-04-23
      相关资源
      最近更新 更多