网络编程
位置:首页>> 网络编程>> Python编程>> Pytorch实现List Tensor转Tensor,reshape拼接等操作

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

作者:Bagba  发布时间:2021-06-06 19:58:51 

标签:Pytorch,List,Tensor,reshape

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

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

用到两个函数:

  • torch.cat

  • torch.stack

一、List Tensor转Tensor (torch.cat)

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

// 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)

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

代码:

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.]]])

来源:https://blog.csdn.net/bagba/article/details/107047202

0
投稿

猜你喜欢

  • 本文实例为大家分享了python实现udp传输图片的具体代码,供大家参考,具体内容如下首先要了解UDP的工作模式对于服务器,首先绑定IP和端
  • #!/usr/bin/env pythonimport sysfrom PyQt4 import QtGui,QtCoreimport ht
  • Mysql参数优化对于新手来讲,是比较难懂的东西,其实这个参数优化,是个很复杂的东西,对于不同的网站,及其在线量,访问量,帖子数量,网络情况
  • 当一张的数据达到几百万时,你查询一次所花的时间会变多,如果有联合查询的话,我想有可能会死在那儿了。分表的目的就在于此,减小数据库的负担,缩短
  • asp三天学好ADO对象之第一天 今天说一下Recordset 对象的属性1、CursorType 属性AdOpenForwardOnly:
  • 问题你要处理由大量不同类型的对象组成的复杂数据结构,每一个对象都需要需要进行不同的处理。比如,遍历一个树形结构,然后根据每个节点的相应状态执
  • Python读取配置文件-ConfigParser二次封装直接上上代码test.conf[database]connect = mysqls
  • 字符串类型是python里面最常见的类型,是不可变类型,支持单引号、双引号、三引号,三引号是一对连续的单引号或者双引号,允许一个字符串跨多行
  • 一、业务背景在金融风控领域,常常使用KS指标来衡量评估模型的区分度(discrimination),这也是风控模型最为追求的指标之一。下面将
  • innerHTML,outerHTML innerHTML检索或设置标签内的内容;outerHTML检索或设置整个标签的内容(包含标签)。&
  • MySQL 处理重复数据有些 MySQL 数据表中可能存在重复的记录,有些情况我们允许重复数据的存在,但有时候我们也需要删除这些重复的数据。
  • csv文件CSV文件是最常用的一个文件存储方式。逗号分隔值(Common-Separated Values,CSV)文件以纯文本形式存储表格
  • 条形图是用宽度相同的条形的高度或长短来表示数据多少的图形。用来绘制离散的数据,能够一眼看出各个数据的大小,比较数据之间的差异。绘制一个简单的
  • 下面是用python写的,使用lxml来做html分析,从网上看到的,说是分析速度最快的哦,不过没有验证过。好了,上代码。 import u
  • 1.单继承父类也叫基类子类也叫派生类如下所示,继承的关系:继承的书写格式:class 子类(父类):方法实例:class Animal: &
  • 本文实例为大家分享了python读取Excel实例的具体代码,供大家参考,具体内容如下1.操作步骤:(1)安装python官方Excel库-
  • 方法方法能给用户自定义的类型添加新的行为。它和函数的区别在于方法有一个接收者,给一个函数添加一个接收者,那么它就变成了方法。接收者可以是值接
  • 在数据传递时,需要先编解码;常用的方式是JSON编解码(参见《golang之JSON处理》)。但有时却需要读取部分字段后,才能知道具体类型,
  • 这个小程序可以自己设定行数和列数进行图片切割import osfrom PIL import Imagedef splitimage(src
  • Python 调用JS文件中的函数方法如下1、安装PyExecJS第三方库2、导入库:import execjs3、调用JS文件中的方法Pa
手机版 网络编程 asp之家 www.aspxhome.com