Pytorch实现List Tensor转Tensor,reshape拼接等操作

 更新时间:2022年11月03日 11:46:45   作者:Bagba  
这篇文章主要介绍了Pytorch实现List Tensor转Tensor,reshape拼接等操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

持续更新一些常用的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.]]])

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Python中aiohttp的简单使用

    Python中aiohttp的简单使用

    aiohttp是Python中一个强大的异步HTTP客户端和服务器框架,它可以帮助开发者快速构建高性能的Web应用程序。本文将介绍aiohttp的基本概念、使用方法和常见应用场景,帮助读者更好地了解和使用这个优秀的框架
    2023-03-03
  • python中关于eval函数的使用及说明

    python中关于eval函数的使用及说明

    这篇文章主要介绍了python中关于eval函数的使用及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • 使用Python和XPath解析动态JSON数据的操作指南

    使用Python和XPath解析动态JSON数据的操作指南

    JSON动态数据在Python中扮演着重要的角色,为开发者提供了处理实时和灵活数据的能力,动态JSON数据的获取可能涉及到网络请求和API调用,可以使用Python和XPath来解析动态JSON数据,接下来小编就给大家介绍一下操作步骤
    2023-09-09
  • Django contenttypes 框架详解(小结)

    Django contenttypes 框架详解(小结)

    这篇文章主要介绍了Django contenttypes 框架详解(小结),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • SQLAlchemy的主要组件详细讲解

    SQLAlchemy的主要组件详细讲解

    SQLAlchemy是一个基于Python实现的ORM框架,能满足大多数数据库操作需求,同时支持多种数据库引擎(SQLite,MySQL,Postgresql,Oracle等),这篇文章主要介绍了SQLAlchemy的主要组件有哪些,本文给大家介绍的非常详细,对大家的学习具有一定的参考借鉴价值,需要的朋友可以参考
    2023-08-08
  • 详解python使用Nginx和uWSGI来运行Python应用

    详解python使用Nginx和uWSGI来运行Python应用

    这篇文章主要介绍了详解python使用Nginx和uWSGI来运行Python应用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-01-01
  • 利用Python如何生成hash值示例详解

    利用Python如何生成hash值示例详解

    这篇文章主要给大家介绍了关于利用Python如何生成hash值的相关资料,并且给大家分享了利用Python一句话校验软件哈希值的方法,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧。
    2017-12-12
  • Python中list列表的赋值方法及遇到问题处理

    Python中list列表的赋值方法及遇到问题处理

    这篇文章主要介绍了Python中list列表的赋值方法及遇到问题处理,记录在列表list的赋值过程中遇到的问题,并对列表的拷贝相关知识进行汇总,需要的朋友可以参考一下
    2022-03-03
  • python字典和json.dumps()的遇到的坑分析

    python字典和json.dumps()的遇到的坑分析

    在本篇文章里小编给大家整理了关于python字典和json.dumps()的遇到的坑分析,需要的朋友们可以学习下。
    2020-03-03
  • python使用redis实现消息队列(异步)的实现完整例程

    python使用redis实现消息队列(异步)的实现完整例程

    本文主要介绍了python使用redis实现消息队列(异步)的实现完整例程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01

最新评论