美文网首页pytorch
PyTorch:view() 与 reshape() 区别详解

PyTorch:view() 与 reshape() 区别详解

作者: 午字横 | 来源:发表于2022-11-19 13:05 被阅读0次

    两者都是用来重塑tensor的shape的。view只适合对满足连续性条件(contiguous)的tensor进行操作,而reshape同时还可以对不满足连续性条件的tensor进行操作,具有更好的鲁棒性。view能干的reshape都能干,如果view不能干就可以用reshape来处理。

    PyTorch: view( )用法详解

    pytorch中的 view() 函数相当于numpy中的resize( )函数,都是用来重构(或者调整)张量维度的,用法稍有不同。

    1. view(参数a, 参数b, 参数c…)

    >>> import torch
    >>> re = torch.tensor([1, 2, 3, 4, 5,  6])
    >>> result = re.view(3,2)
    >>> result
    tensor([[1, 2],
            [3, 4],
            [5, 6]])
    
    

    2. view(-1)

    >>> import torch
    >>> re = torch.tensor([[1, 2],
                          [3, 4],
                          [5, 6]])
    >>> result = re.view(-1)
    >>> result
    tensor([1, 2, 3, 4, 5, 6])
    
    

    view(-1)将张量重构成了1维的张量。

    3. view(-1, 参数b)

    >>> import torch
    >>> re = torch.tensor([1, 2, 3, 4, 5,  6])
    >>> result = re.view(-1, 2)
    >>> result
    tensor([[1, 2],
            [3, 4],
            [5, 6]])
    
    

    torch.view(-1, 参数b),则表示在参数a未知,参数b已知的情况下自动补齐行向量长度,在这个例子中b=3,re总共含有6个元素,则a=6/2=3。

    相关文章

      网友评论

        本文标题:PyTorch:view() 与 reshape() 区别详解

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