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)
// 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.]]])
来源:https://blog.csdn.net/bagba/article/details/107047202
0
投稿
猜你喜欢
- 前言经典面试题: 判断一个字符串里面的括号是否闭合,如:{{()}} 就是一个闭合的字符串。{{()}]} 这个里面 ([)] 括号不对称,
- Python安装流程:一.下载在网上(输入网址https://www.python.org/downloads/)下载Windows最新的p
- 内容摘要:统计在线人数的方法很多,可以使用Application来统计在线人数,也可以使用IP来统计在线人数。各有优点。本文介绍了通过判断S
- 一、利用外键约束更新MySQL中的数据现在,最流行的开源关系型数据库管理系统非MySQL莫属,而MySQL又支持多个存储引擎,其中默认的也是
- requests库安装和导入第一步:cmd打开命令行,使用如下命令安装requests库。pip install requests由于我的安
- 前言:本文研究的主要是Python实现pig Latin小游戏的简单代码,具体介绍如下。Pig Latin是一个语言游戏。步骤:1.让用户输
- 分页显示是页面常用技术,可用下列代码来实现:<%page=Request.QueryString("page&q
- 一、比较运算符和比较方法比较运算符用于判断是否相等和比较大小,Python中的比较运算符有==、!=、<、>、<=、>
- 在用户研究工作中,如何让自己的数据和结论更有说服力,是很重要的问题。最近将自己积累的用研信度和效度的笔记整理一下,罗列在文中,希望对大家有所
- 看书笔记db file scattered read DB ,db file sequential read DB,free buffer
- 身为一名小小的程序猿,在日常开发中不可以避免的要和where in和like打交道,在大多数情况下我们传的参数不多简单做下单引号、敏感字符转
- # -*- coding: cp936 -*-from scapy.all import *from threading import Th
- 一、基本概念Reactive X中有几个核心的概念,先来简单介绍一下。1.1、Observable和Observer(可观察对象和观察者)首
- 图片按钮是我们经常应用的网页元素,按钮的生成有两种方法,一个是用链接<a>来模拟按钮,一个是用现成的表单按钮。<input
- 缓动,学名为Tween,缓冲移动的简称。要想页面内容切换起来舒服,就使用淡入淡出特效,要想让页面元素动起来自然,就要使用缓动效果。这两个混合
- 本文实例讲述了python 协程 gevent原理与用法。分享给大家供大家参考,具体如下:geventgreenlet已经实现了协程,但是这
- 今天发现sympy依赖的库mpmath里也有很多数学函数,其中也有在复平面绘制二维图的函数cplot,具体例子如下from mpmath i
- 我在程序中加入了分数显示,三种特殊食物,将贪吃蛇的游戏逻辑写到了SnakeGame的类中,而不是在Snake类中。特殊食物:1.绿色:普通,
- python将字符串转换成数组的方法。分享给大家供大家参考。具体实现方法如下:#------------------------------
- 在我们建立一个数据库时,并且想将分散在各处的不同类型的数据库分类汇总在这个新建的数据库中时,尤其是在进行数据检验、净化和转换时,将会面临很大