美文网首页
总结: Numpy , Tensor , Variable 增删

总结: Numpy , Tensor , Variable 增删

作者: 月牙眼的楼下小黑 | 来源:发表于2018-10-04 17:06 被阅读131次

    作 者: 月牙眼的楼下小黑
    联 系zlf111@mail.ustc.edu.cn
    声 明: 欢迎转载本文中的图片或文字,请说明出处


    1.Numpy.array

    • 给 2-d Array(H, W) 增加一个值为 1 的维度成为 3-d Array(H, W, 1)

    彩色图像numpy中以 (H, W, C) 形状(channel-last)的 3-d Array 存储; 而 灰度图像 则以 (H, W) 形状的 2-d Array 存储, 经常需要为其增加一个值为 1 的维度, 成为 3-d Array(H, W, 1)

    import numpy as np
    
    in:
    a = np.ones((3,3))
    print(a.shape) 
    b1 = np.expand_dims(a,2)
    print(b1.shape)
    
    out:
    (2, 2)
    (2, 2, 1)
    
    note:
    b2 = np.expand_dims(a, 0) # (1, 2, 2)
    b3 = np.expand_dims(a, 1) # (2, 2, 1)
    
    • 删去n-d Array 中值为1 的维度

    在显示、保存图像矩阵时,往往需要删去值为1的维度:

    in:
    a = np.ones((2,2,1))
    print(a.shape)
    b = np.squeeze(a)
    print(b.shape)
    
    out:
    (2, 2, 1)
    (2, 2)
    

    2.torch.Tensor

    • 给 2-d Tensor(H, W) 增加一个值为 1 的维度成为 3-d Tensor(1, H, W)

    彩色图像Pytorch 中以 (C, H, W) 形状(channel-first)的 3-d tensor 存储; 而 灰度图像 则以 (H, W) 形状的 2-d tensor 存储, 经常需要为其增加一个值为 1 的维度, 成为 3-d tensor (H, W, 1)

    in:
    import torch as t
    a = np.ones((2,2))
    a = t.Tensor(a)
    print(a.shape)
    
    b = t.unsqueeze(a, 0)
    print(b.shape)
    
    out:
    torch.Size([2, 2])
    torch.Size([1, 2, 2])
    
    • 删去n-d Array 中值为1 的维度
    in:
    import torch as t
    a = np.ones((2,2,1))
    a = t.Tensor(a)
    print(a.shape)
    
    b = t.squeeze(a)
    print(b.shape)
    
    out:
    torch.Size([2, 2, 1])
    torch.Size([2, 2])
    

    3.torch.Variable

    Pytorch 中为支持自动求导, Tenosr 被封装成 VariableVariable 增删维度使用的函数与 Tensor 一致。

    相关文章

      网友评论

          本文标题:总结: Numpy , Tensor , Variable 增删

          本文链接:https://www.haomeiwen.com/subject/tuvxaftx.html