PyTorch中的torch.cat简单介绍

目录
  • 1.toych简单介绍
  • 2.张量Tensors
  • 3.torch.cat

1.toych简单介绍

torch包含了多维疑是的数据结构及基于其上的多种数学操作。

torch包含了多维张量的数据结构以及基于其上的多种数学运算。此外,它也提供了多种实用工具,其中一些可以更有效地对张量和任意类型进行序列化的工具。

它具有CUDA的对应实现,可以在NVIDIA GPU上进行张量运算(计算能力>=3.0)

2. 张量Tensors

torch.is_tensor(obj):如果obj是一个pytorch张量,则返回True

torch.is_storage(obj):如果obj是一个pytorch storage对象,则返回True

torch.numel(input):返回input张量中的元素个数。

3.torch.cat

a = torch.ones([1,2])
 
b = torch.ones([1,2])
 
z = torch.cat([a,b],1)
 
a
Out[47]: tensor([[1., 1., 1., 1.]])
 
a
Out[48]: tensor([[1., 1.]])

如果第二个参数是1,torch.cat就是将a,b 按列放在一起,大小为torch.Size([1,4])。如果第二个参数是0,则按行

行放在一起,大小为 torch.Size([2, 2]) 。

字面理解:torch.cat是将两个张量(tensor)拼接在一起,cat是concatenate的意思,即拼接,联系在一起。

例子理解:

import torch
A = torch.ones(2,3)
A
#tensor([[1., 1., 1.],
#        [1., 1., 1.]])
B=2*torch.ones(4,3)
B
#tensor([[2., 2., 2.],
#        [2., 2., 2.],
#        [2., 2., 2.],
#        [2., 2., 2.]])
C = torch.cat((A,B),0) #按维数0(添加到行)拼接
C
#tensor([[1., 1., 1.],
#        [1., 1., 1.],
#        [2., 2., 2.],
#        [2., 2., 2.],
#        [2., 2., 2.],
#        [2., 2., 2.]])
D = 2*torch.ones(2,4)
M = torch.cat((A,D),1)  # 按维数1(列)拼接
M
#tensor([[1., 1., 1., 2., 2., 2., 2.],
#        [1., 1., 1., 2., 2., 2., 2.]])
M.size()
#torch.Size([2, 7])

使用torch.cat((A,B),dim)时,除拼接维数dim数值可不同外其余维数数值需相同,方能对齐

到此这篇关于PyTorch中的torch.cat的文章就介绍到这了,更多相关torch.cat内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 聊聊Pytorch torch.cat与torch.stack的区别

    torch.cat()函数可以将多个张量拼接成一个张量.torch.cat()有两个参数,第一个是要拼接的张量的列表或是元组:第二个参数是拼接的维度. torch.cat()的示例如下图1所示 图1 torch.cat() torch.stack()函数同样有张量列表和维度两个参数.stack与cat的区别在于,torch.stack()函数要求输入张量的大小完全相同,得到的张量的维度会比输入的张量的大小多1,并且多出的那个维度就是拼接的维度,那个维度的大小就是输入张量的个数. torch.st

  • PyTorch的torch.cat用法

    1. 字面理解: torch.cat是将两个张量(tensor)拼接在一起,cat是concatnate的意思,即拼接,联系在一起. 2. 例子理解 >>> import torch >>> A=torch.ones(2,3) #2x3的张量(矩阵) >>> A tensor([[ 1., 1., 1.], [ 1., 1., 1.]]) >>> B=2*torch.ones(4,3)#4x3的张量(矩阵) >>>

  • PyTorch中的torch.cat简单介绍

    目录 1.toych简单介绍 2.张量Tensors 3.torch.cat 1.toych简单介绍 包torch包含了多维疑是的数据结构及基于其上的多种数学操作. torch包含了多维张量的数据结构以及基于其上的多种数学运算.此外,它也提供了多种实用工具,其中一些可以更有效地对张量和任意类型进行序列化的工具. 它具有CUDA的对应实现,可以在NVIDIA GPU上进行张量运算(计算能力>=3.0) 2. 张量Tensors torch.is_tensor(obj):如果obj是一个pytorc

  • pytorch中with torch.no_grad():的用法实例

    目录 1.关于with 2.关于withtorch.no_grad(): 附:pytorch使用模型测试使用withtorch.no_grad(): 总结 1.关于with with是python中上下文管理器,简单理解,当要进行固定的进入,返回操作时,可以将对应需要的操作,放在with所需要的语句中.比如文件的写入(需要打开关闭文件)等. 以下为一个文件写入使用with的例子. with open (filename,'w') as sh: sh.write("#!/bin/bash\n&qu

  • 详解pytorch中squeeze()和unsqueeze()函数介绍

    squeeze的用法主要就是对数据的维度进行压缩或者解压. 先看torch.squeeze() 这个函数主要对数据的维度进行压缩,去掉维数为1的的维度,比如是一行或者一列这种,一个一行三列(1,3)的数去掉第一个维数为一的维度之后就变成(3)行.squeeze(a)就是将a中所有为1的维度删掉.不为1的维度没有影响.a.squeeze(N) 就是去掉a中指定的维数为一的维度.还有一种形式就是b=torch.squeeze(a,N) a中去掉指定的定的维数为一的维度. 再看torch.unsque

  • 解析Pytorch中的torch.gather()函数

    参数说明 以官方说明为例,gather()函数需要三个参数,输入input,维度dim,以及索引index input必须为Tensor类型 dim为int类型,代表从哪个维度进行索引 index为LongTensor类型 举例说明 input=torch.tensor([[1,2,3],[4,5,6]]) #作为输入 index1=torch.tensor([[0,1,1],[0,1,1]]) #作为索引矩阵 # dim=0时,按列进行索引 print (torch.gather(input,

  • jQuery中 bind的用法简单介绍

    bind介绍 bind() 方法为被选元素添加一个或多个事件处理程序,并规定事件发生时运行的函数. 语法 $(selector).bind(event,data,function) event 必须.添加到元素的一个或多个事件如:click,mouseover,mouseup,change,select data 可不填.传递到函数的额外数据,如:$(selector).bind("click","input",function(){}); function(){}

  • 浅谈Pytorch中的torch.gather函数的含义

    pytorch中的gather函数 pytorch比tensorflow更加编程友好,所以准备用pytorch试着做最近要做的一些实验. 立个flag开始学习pytorch,新开一个分类整理学习pytorch中的一些踩到的泥坑. 今天刚开始接触,读了一下documentation,写一个一开始每太搞懂的函数gather b = torch.Tensor([[1,2,3],[4,5,6]]) print b index_1 = torch.LongTensor([[0,1],[2,0]]) ind

  • jsp中存取session值简单介绍

    我们在jsp中会操作一些表单的值.或者获得用户的值操作,那么我们就可以使用jsp的作用域操作,1.page.request.session.application这四个作用域,其中最常用的便是request和session的域操作. 使用session域操作,因为使用的web容器是Tomcat服务器,而session只要不关闭浏览器,它就会一直存在不会消失,还是就是时间的默认限制30分钟,那么接下来便是在jsp中使用session, <%@ page language="java"

  • Java中&和&&的区别简单介绍

    & 按位运算符,逻辑运算符 && 逻辑运算符 相同点:只要有一端为假,则语句不成立 假设有三个参数 int x = 1; int y = 2; int q = 1; 作为逻辑运算符时,&左右两端条件式有一个为假就会不成立,但是两端都会运行 if((x+y)==4 & q++>0) {} System.out.println(q); //q=2 &&也叫做短路运算符,因为只要左端条件式为假直接不成立,不会去判断右端条件式. if((x+y)==4

  • Java中Range函数的简单介绍

    目录 前言 Range语法 IntStream范围的语法 LongStream范围的语法 Range函数在Java中是如何工作的? Java中的Range示例 前言 在Java中,Range方法在IntStream和LongStream类中都可用.在IntStream类中,它有助于返回函数参数范围内IntStream的顺序值.在该方法中,startInclusive(inclusive)和endExclusive(exclusive)是与增量步长一起使用的两个参数,如前所述,将包括起始值,并排除

  • 浅谈pytorch中stack和cat的及to_tensor的坑

    初入计算机视觉遇到的一些坑 1.pytorch中转tensor x=np.random.randint(10,100,(10,10,10)) x=TF.to_tensor(x) print(x) 这个函数会对输入数据进行自动归一化,比如有时候我们需要将0-255的图片转为numpy类型的数据,则会自动转为0-1之间 2.stack和cat之间的差别 stack x=torch.randn((1,2,3)) y=torch.randn((1,2,3)) z=torch.stack((x,y))#默

随机推荐