『pytorch』第二弹_张量

叠加态的猫 叠加态的猫     2022-08-31     280

关键词:

参考:http://www.jianshu.com/p/5ae644748f21#

几个数学概念:

标量(Scalar)是只有大小,没有方向的量,如1,2,3等

向量(Vector)是有大小和方向的量,其实就是一串数字,如(1,2)

矩阵(Matrix)是好几个向量拍成一排合并而成的一堆数字,如[1,2;3,4]

技术分享

其实标量,向量,矩阵它们三个也是张量,标量是零维的张量,向量是一维的张量,矩阵是二维的张量,除此之外,张量不仅可以是三维的,还可以是四维的、五维的...

 

一点小注意:

1.由于torch和numpy的特殊关系,似乎numpy中array的操作大部分可以在Tensor上实践

2.任何可以改变tensor内容的操作都会在方法名后加一个下划线‘_‘,如x.copt_(y)、x.t_()、x.add_(y),等等

 

张量的基本操作演示:

 1 # coding=utf-8
 2 
 3 import torch
 4 
 5 
 6 # 特别注明:任何可以改变tensor内容的操作都会在方法名后加一个下划线‘_‘
 7 # 例如:x.copy_(y), x.t_(), 这俩都会改变x的值。
 8 
 9 
10 ‘‘‘初始化操作‘‘‘
11 
12 x = torch.Tensor(5,3)      # 未初始化的张量
13 print(x)
14 x = torch.rand(5,3)        # 随机初始化的张量
15 print(x)
16 print(x.size())            # 查看张量的尺寸
17                            # 这是一个tuple

 

-4.5163e+29  4.5806e-41 -4.5163e+29
 4.5806e-41 -8.3134e+23  4.5806e-41
-8.3134e+23  4.5806e-41 -8.3134e+23
 4.5806e-41 -8.3134e+23  4.5806e-41
-8.3134e+23  4.5806e-41 -8.3134e+23
[torch.FloatTensor of size 5x3]


 0.3349  0.7324  0.7708
 0.2973  0.1546  0.5236
 0.2481  0.8018  0.3527
 0.2328  0.2714  0.5307
 0.3042  0.5355  0.2955
[torch.FloatTensor of size 5x3]

torch.Size([5, 3])

 

 

 1 ‘‘‘加法操作‘‘‘
 2 
 3 a = torch.ones(2,2)
 4 b = torch.zeros(2,2)
 5 
 6 # 语法一
 7 print(a+b)
 8 # 语法二
 9 print(torch.add(a,b))
10 # 语法三
11 print(b.add_(a))
12 # 语法三
13 c = torch.Tensor(2,2)
14 torch.add(a,b,out=c)
15 print(c)

 

 1  1
 1  1
[torch.FloatTensor of size 2x2]


 1  1
 1  1
[torch.FloatTensor of size 2x2]


 1  1
 1  1
[torch.FloatTensor of size 2x2]


 2  2
 2  2
[torch.FloatTensor of size 2x2]

 

 

 1 ‘‘‘Numpy桥‘‘‘
 2 
 3 a = torch.ones(3,2)
 4 
 5 a = torch.ones(5)
 6 b = a.numpy()     # tensor转换为array
 7 a.add_(1)
 8 print(b)          # a,b共用内存,属于浅拷贝
 9 
10 import numpy as np
11 
12 a = np.ones(5)
13 b = torch.from_numpy(a)   # array转换为tensor
14 np.add(a,1,out=a)
15 print(b)                  # a,b共用内存
16 
17 # 另外除了CharTensor之外,所有的tensor都可以在CPU运算和GPU预算之间相互转换
18 # 使用CUDA函数来将Tensor移动到GPU上
19 # 当CUDA可用时会进行GPU的运算
20 x = torch.ones(2,2)
21 y = torch.eye(2,2)
22 if torch.cuda.is_available():
23     x = x.cuda()
24     y = y.cuda()
25 print(x,y)
26 # print(x+y)       # 我的设备没配置好会出错,不过显卡太渣,以后有服务器玩再说吧

 

[ 2.  2.  2.  2.  2.]

 2
 2
 2
 2
 2
[torch.DoubleTensor of size 5]


 1  1
 1  1
[torch.cuda.FloatTensor of size 2x2 (GPU 0)]
 
 1  0
 0  1
[torch.cuda.FloatTensor of size 2x2 (GPU 0)]


Process finished with exit code 0

 

『pytorch』第十二弹_nn.module和nn.functional

大部分nn中的层class都有nn.function对应,其区别是:nn.Module实现的layer是由classLayer(nn.Module)定义的特殊类,会自动提取可学习参数nn.Parameternn.functional中的函数更像是纯函数,由deffunction(input)定义。由于两者性能差异不大,所以具体... 查看详情

将第二个和第三个通道添加到张量 - Pytorch

】将第二个和第三个通道添加到张量-Pytorch【英文标题】:Addsecondandthirdchanneltoatensor-Pytorch【发布时间】:2021-11-2410:13:39【问题描述】:我正在尝试将蒙版应用于图像。我有我的图像形状[360,480,3]和形状为[360,480,1]的蒙版。如何在P... 查看详情

cookbook学习第二弹

1.5怎样实现一个按优先级排序的队列?并且在这个队列上面每次pop操作总是返回优先级最高的那个元素带有双下划线的方法,会在需要被调用的位置自动被调用带有单下划线的变量是私有变量 下面利用类heapq模块实现一个简... 查看详情

pytorch笔记meshgrid(代码片段)

1基本使用方法生成网格输入两个数据类型相同的一维tensor输出两个tensor(tensor行数为第一个输入张量的元素个数,列数为第二个输入张量的元素个数)第一个输出张量填充第一个输入张量中的元素,各行元素相同... 查看详情

PyTorch 张量广播

】PyTorch张量广播【英文标题】:PyTorchTensorbroadcasting【发布时间】:2021-12-3110:11:14【问题描述】:我正在尝试弄清楚如何进行以下广播:我有两个张量,大小分别为(n1,N)和(n2,N)我想要做的是将第一个张量的每一行与第二个张量的... 查看详情

pytorch:张量的拼接切分索引

本文已收录于Pytorch系列专栏:​​Pytorch入门与实践​​专栏旨在详解Pytorch,精炼地总结重点,面向入门学习者,掌握Pytorch框架,为数据分析,机器学习及深度学习的代码能力打下坚实的基础。免费订阅,持续更新。一、张量... 查看详情

pytorch备忘清单_开发速查表分享

Pytorch备忘清单Pytorch是一种开源机器学习框架,可加速从研究原型设计到生产部署的过程,备忘单是由IT宝库整理的Pytorch开发速查备忘清单为您提供了Pytorch基本语法和初步应用参考入门,为开发人员分享快速参考备忘单。开发速... 查看详情

使用 grad 将 PyTorch 张量调整为更小的尺寸

】使用grad将PyTorch张量调整为更小的尺寸【英文标题】:ResizingPyTorchtensorwithgradtosmallersize【发布时间】:2020-06-2502:51:20【问题描述】:我正在尝试将张量从(3,3)缩小到(1,1),但我想保留原始张量:importtorcha=torch.rand(3,3)a_copy=a.clone()a... 查看详情

tensorflow与pytorch张量互转(代码片段)

1、tensorflow张量转pytorch张量tensorflow(Tensor)–>numpy.ndarray–>pytorch(Tensor)importtorchimporttensorflowastftf_tensor=tf.constant([1,2,3])withtf.compat.v1.Session().as_default(): np_array=t 查看详情

tensorflow与pytorch张量互转(代码片段)

1、tensorflow张量转pytorch张量tensorflow(Tensor)–>numpy.ndarray–>pytorch(Tensor)importtorchimporttensorflowastftf_tensor=tf.constant([1,2,3])withtf.compat.v1.Session().as_default(): np_array=t 查看详情

在 PyTorch 中,是啥让张量具有非连续内存?

】在PyTorch中,是啥让张量具有非连续内存?【英文标题】:InPyTorch,whatmakesatensorhavenon-contiguousmemory?在PyTorch中,是什么让张量具有非连续内存?【发布时间】:2019-06-0308:31:38【问题描述】:根据thisSO和thisPyTorchdiscussion,PyTorch的vie... 查看详情

表单练习第二弹

---恢复内容开始---<bodytext="#33FF00"bgcolor="#33FF33"background="150358666450342800_a580xH.jpg">body里面加属性,字体颜色、背景色、背景图片。在body里面输入的属性是针对在body里面所有内容的属性。<formaction="../10.9表单/www.baidu.html"method=" 查看详情

tensorflow与pytorch张量互转(代码片段)

1、tensorflow张量转pytorch张量tensorflow(Tensor)–>numpy.ndarray–>pytorch(Tensor)importtorchimporttensorflowastftf_tensor=tf.constant([1,2,3])withtf.compat.v1.Session().as_default(): np_array=tf_tensor.eval()torch_tensor=torch.from_numpy(np_array)2、pytorch张量转tensor... 查看详情

pytorch基本操作(代码片段)

...;最大的区别在于Tensor可以利用GPU的加速功能。·我们使用Pytorch的时候,常规步骤是先将torch引用进来,如下所示:from__future__importprint_functionimporttorch·创建矩阵的操作·创建一 查看详情

pytorch入门教程(代码片段)

Pytorch学习总结:Pytorch学习笔记总结_大数据与人工智能技术分享-CSDN博客Pytorch实战总结:pytorch实战教学(一篇管够)B站深度学习Pytorch实战总结1.张量Tensor张量是一种特殊的数据结构,与数组和矩阵非常相似。在PyTo... 查看详情

如何将 pytorch 整数张量转换为布尔张量?

】如何将pytorch整数张量转换为布尔张量?【英文标题】:Howtoconvertapytorchtensorofintstoatensorofbooleans?【发布时间】:2019-05-0221:32:15【问题描述】:我想将整数张量转换为布尔张量。具体来说,我希望能够拥有一个将tensor([0,10,0,16])转... 查看详情

pytorch:了解tensor(张量)及其创建方法

本文已收录于Pytorch系列专栏:​​Pytorch入门与实践​​专栏旨在详解Pytorch,精炼地总结重点,面向入门学习者,掌握Pytorch框架,为数据分析,机器学习及深度学习的代码能力打下坚实的基础。免费订阅,持续更新。认识张量... 查看详情

在 PyTorch 中将 5D 张量转换为 4D 张量

】在PyTorch中将5D张量转换为4D张量【英文标题】:Convert5Dtensorto4DtensorinPyTorch【发布时间】:2020-12-2712:19:31【问题描述】:在PyTorch中,我有一个尺寸为Bx9xCxHxW的5D张量X。我想将其转换为尺寸为Bx9CxHxW的4D张量Y,以便以通道方式进行... 查看详情