Pytorch如何实现List和Tensor的转化,要注意哪些问题

Admin 2022-12-20 群英技术资讯 338 次浏览

这篇主要是介绍“Pytorch如何实现List和Tensor的转化,要注意哪些问题”的内容了,下文有实例供大家参考,对大家了解操作过程或相关知识有一定的帮助,而且实用性强,希望这篇文章能帮助大家解决Pytorch如何实现List和Tensor的转化,要注意哪些问题的问题,下面我们一起来了解看看吧。

目录
  • 一、List Tensor转Tensor (torch.cat)
    • 高维tensor
  • 二、List Tensor转Tensor (torch.stack)

    持续更新一些常用的Tensor操作,比如List,Numpy,Tensor之间的转换,Tensor的拼接,维度的变换等操作。

    其它Tensor操作如 einsum等见:待更新。

    用到两个函数:

    • torch.cat
    • torch.stack

    一、List Tensor转Tensor (torch.cat)

    // An highlighted block
    >>> t1 = torch.FloatTensor([[1,2],[5,6]])
    >>> t2 = torch.FloatTensor([[3,4],[7,8]])
    >>> l = []
    >>> l.append(t1)
    >>> l.append(t2)
    >>> ta = torch.cat(l,dim=0)
    >>> ta = torch.cat(l,dim=0).reshape(2,2,2)
    >>> tb = torch.cat(l,dim=1).reshape(2,2,2)
    >>> ta
    tensor([[[1., 2.],
             [5., 6.]],
    
            [[3., 4.],
             [7., 8.]]])
    >>> tb
    tensor([[[1., 2.],
             [3., 4.]],
    
            [[5., 6.],
             [7., 8.]]])

    高维tensor

    ** 如果理解了2D to 3DTensor,以此类推,不难理解3D to 4D,看下面代码即可明白:**

    >>> t1 = torch.range(1,8).reshape(2,2,2)
    >>> t2 = torch.range(11,18).reshape(2,2,2)
    >>> l = []
    >>> l.append(t1)
    >>> l.append(t2)
    >>> torch.cat(l,dim=2).reshape(2,2,2,2)
    tensor([[[[ 1.,  2.],
              [11., 12.]],
    
             [[ 3.,  4.],
              [13., 14.]]],
    
    
            [[[ 5.,  6.],
              [15., 16.]],
    
             [[ 7.,  8.],
              [17., 18.]]]])
    >>> torch.cat(l,dim=1).reshape(2,2,2,2)
    tensor([[[[ 1.,  2.],
              [ 3.,  4.]],
    
             [[11., 12.],
              [13., 14.]]],
    
    
            [[[ 5.,  6.],
              [ 7.,  8.]],
    
             [[15., 16.],
              [17., 18.]]]])
    >>> torch.cat(l,dim=0).reshape(2,2,2,2)
    tensor([[[[ 1.,  2.],
              [ 3.,  4.]],
    
             [[ 5.,  6.],
              [ 7.,  8.]]],
    
    
            [[[11., 12.],
              [13., 14.]],
    
             [[15., 16.],
              [17., 18.]]]])

    二、List Tensor转Tensor (torch.stack)

    代码:

    import torch
    
    t1 = torch.FloatTensor([[1,2],[5,6]])
    t2 = torch.FloatTensor([[3,4],[7,8]])
    l = [t1, t2]
    
    t3 = torch.stack(l, dim=2)
    print(t3.shape)
    print(t3)
    
    ## output:
    ## torch.Size([2, 2, 2])
    ## tensor([[[1., 3.],
    ##          [2., 4.]],
    ##        [[5., 7.],
    ##         [6., 8.]]])

    这篇关于“Pytorch如何实现List和Tensor的转化,要注意哪些问题”的文章就介绍到这了,更多相关的内容,欢迎关注群英网络,小编将为大家输出更多高质量的实用文章! 群英智防CDN,智能加速解决方案

    免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。

    猜你喜欢

    成为群英会员,开启智能安全云计算之旅

    立即注册
    专业资深工程师驻守
    7X24小时快速响应
    一站式无忧技术支持
    免费备案服务
    免费拨打  400-678-4567
    免费拨打  400-678-4567 免费拨打 400-678-4567 或 0668-2555555
    在线客服
    微信公众号
    返回顶部
    返回顶部 返回顶部
    在线客服
    在线客服