张量

PyTorch常用函数

旧巷老猫 提交于 2019-12-25 20:47:18
1. torch.from_numpy(a) : 将a从numpy数组转化为torch张量。 2. a.numpy() : 将a从torch张量转化为numpy数组。 来源: CSDN 作者: y1556368418 链接: https://blog.csdn.net/y1556368418/article/details/103704590

张量分解与应用-学习笔记[03]

江枫思渺然 提交于 2019-12-24 01:32:19
4 压缩与Tucker分解法 4.0 Tucker分解法定义 Tucker分解法可以被视作一种高阶PCA. 它将张量分解为核心张量(core tensor)在每个mode上与矩阵的乘积. 因此, 对三维张量 \(\mathcal{X}\in\mathbb{R}^{I \times J \times K}\) 来说, 我们有如下分解: \[ (4.1) \mathcal{X} \approx \mathcal{G}\times_1 \mathrm{A} \times_2 \mathrm{B} \times_3 \mathrm{C} = \sum_{p=1}^P\sum_{q=1}^Q\sum_{r=1}^R g_{pqr} \: \mathrm{a}_p\circ \mathrm{b}_q\circ \mathrm{c}_r = [\![\mathcal{G}\,;A,B,C]\!]. \] 其中, \(\mathrm{A}\in \mathbb{R}^{I\times P}\) , \(\mathrm{B}\in\mathbb{R}^{J\times Q}\) , 和 \(\mathrm{C} \in \mathbb{R}^{K\times R}\) 被称之为因子矩阵, 他们通常是正交的(orthogonal). 他们通常可以被作每个mode下的主成分principal

浅谈张量数据的存储

三世轮回 提交于 2019-12-22 20:44:46
几种张量数据的存储方式: 主要讲讲高维的张量数据存储: 1.excel中二维表+不同sheet 以之前的发动机的数据为例: 一个文件中有多个sheet,sheet1、sheet2、…、sheetN 一个sheet中包含一个二维表 列是发动机的各项指标property1、property2、…、propertyN 行是发动机1、发动机2、…、发动机N sheet1 Property1 Property2 Engine1 10 12 Engine2 15 13 Engine3 11 14 2.用JSON格式存储,然后存至MySQL数据库,MySQL5.7.7版本已经开始原生支持JSON格式。 JSON是 JavaScript Object Notation的缩写,但是和Javascript语言没有多大关系。也是一种存储数据的方式。 JSON语法的核心是Key-Value键值对,最外侧的大括号开始表示JSON对象的起始,一直到末尾的大括号结束。 { #Json对象的开始 "price" : 9999 , "country-of-origin" : "usa" , "system" : "Linux" "style" : { # JSON 对象内部嵌套一个 JSON 对象,Style对应的 JSON 对象里面由包含两个键值对 "categorises" : [ "laptop" ,

Pytorch中tensor常用语法

为君一笑 提交于 2019-12-21 20:07:40
我把常用的Tensor的数学运算总结到这里,以防自己在使用PyTorch做实验时,忘记这些方法应该传什么参数。总结的方法包括: Tensor求和以及按索引求和 :torch.sum() 和 torch.Tensor.indexadd() Tensor元素乘积 :torch.prod(input) 对Tensor求均值、方差、极值 :torch.mean() 、 torch.var() 、 torch.max() 、 torch.min() 求Tensor的平方根倒数 :torch.rsqrt(input) 求Tensor的线性插值 : torch.lerp(star,end,weight) 求Tensor的\双曲正切 :torch.tanh(input, out=None) 元素求和 torch.sum(input) → \rightarrow → Tensor 返回输入向量input中所有元素的和。 参数: input (Tensor) - 输入张量 例子: torch.sum(input, dim, keepdim=False, out=None) → \rightarrow → Tensor 返回新的张量,其中包括输入张量input中指定维度dim中每行的和。 若keepdim值为True,则在输出张量中,除了被操作的dim维度值降为1,其它维度与输入张量input相同。否则

目标检测——使用OpenCV读取图片要注意进行维度变换

和自甴很熟 提交于 2019-12-21 06:01:32
注意: 使用 cv2.imread() 读取彩色图片时,OpenCV获得的张量的数据顺序为h*w*c,其中张量的最后一个维度才是通道,所以在送入到torch中之前,需要对张量的维度顺序进行变换; 一个可行的方式为 img = img.transpose(2, 0, 1) # 变换前: np.ndarray h*w*c # 变换后: np.ndarray c*h*w 来源: CSDN 作者: songyuc 链接: https://blog.csdn.net/songyuc/article/details/103601790

PyTorch学习笔记

孤者浪人 提交于 2019-12-17 12:29:37
【PyTorch深度学习60分钟快速入门 】Part1:PyTorch是什么?来源:https://www.cnblogs.com/leejack/p/8370634.html import torch import numpy as np #用于替代NumPy(torch对象叫张量,带前缀和括号,并用逗号分隔,numpy对象叫数组,用空格分隔),#torch可以使用GPU的计算力,一种深度学习研究平台,可以提供最大的灵活性和速度 x = torch.Tensor(5, 3) #创建一个5x3且未初始化的矩阵,如果将首字母大写的Tensor改成小写tensor,会报错 #print(x) x = torch.rand(5, 3)#创建一个随机初始化的矩阵rand表示0~1之间均匀分布的随机数 #print(x) #print(x.size()) y = torch.rand(5, 3) #print(x + y) #print(torch.add(x, y)) result = torch.Tensor(5, 3) #print(result) torch.add(x, y, out=result) #print(result) y.add_(x) #原地替换,任何原地改变张量值的操作后缀都是固定的_,例如:x.copy_(y)、x.t_(),都将原地改变x的值。 #print(y

pytorch常用函数

爷,独闯天下 提交于 2019-12-16 03:21:44
torch.cat() torch.squeeze() torch.unsqueeze() torch.stack() torch.sum() torch . sum ( input , dim , out = None ) → Tensor #input (Tensor) – 输入张量 #dim (int) – 缩减的维度 #out (Tensor, optional) – 结果张量 torch.multinomial() torch . multinomial ( input , num_samples , replacement = False , out = None ) → LongTensor 这个函数的作用是对 input 的每一行做 num_samples 次抽取,输出的张量是每一次取值时input张量对应的列下标,每次抽取的依据是input中元素值的大小,值越大,越有几率被先抽到。如果有值为0的元素,那么在所有非0的元素集合被取空之前是不会取0元素的。 replacement 指的是取样时是否是有放回的取样,True是有放回,False无放回。这个函数可以用来实现word2vec算法中的负采样。 下面看官网的一个例子。 >> > weights = torch . Tensor ( [ 0 , 10 , 3 , 0 ] ) # create a Tensor of

Numpy常用的功能

允我心安 提交于 2019-12-10 09:13:21
一维张量的基本属性 import numpy as np a = np . array ( [ 1 , 5 , 3 , 9 , 2 ] ) print ( a . mean ( ) ) #求平均值 print ( a . max ( ) ) print ( a . min ( ) ) print ( a . argmax ( ) ) #输出最大元素的下标,从0开始 print ( a * 2 ) print ( a . ndim ) 二维张量的基本属性 import numpy as np a = np . array ( [ [ 1 , 2 , 3 ] , [ 7 , 3 , 4 ] , [ 5 , 0 , 1 ] ] ) #几维张量就有几个中括号 print ( a . shape ) print ( a . argmax ( ) ) #输出的结果是一个平铺后的下标,从0开始 print ( a . flatten ( ) ) #平铺为一行 print ( a . reshape ( 9 , 1 ) ) 来源: CSDN 作者: skyline_ss 链接: https://blog.csdn.net/skylinesssss/article/details/103460677

《PaddlePaddle从入门到炼丹》一——计算1+1

余生长醉 提交于 2019-12-10 05:32:24
文章目录 前言 计算常量的1+1 计算变量的1+1 参考资料 前言 PaddlePaddle 是百度在2016年9月27日开源的一个深度学习框架,也是目前国内唯一一个开源的深度学习框架。 PaddlePaddle 在0.11.0版本之后,开始推出 Fluid 版本, Fluid 版本相对之前的V2版本, Fluid 的代码结构更加清晰,使用起来更加方便。这本章中我们将会介绍如何使用 PaddlePaddle 来计算1+1,选择这个简单的例子主要是为了让读者了解 PaddlePaddle 的 Fluid 版本的使用,掌握 PaddlePaddle 的使用流程。我们讲过介绍如何使用 PaddlePaddle 定义一个张量和如何对张量进行计算。 计算常量的1+1 PaddlePaddle 类似一个科学计算库,比如 Python 下我们使用的 numpy ,提供的大量的计算操作,但是 PaddlePaddle 的计算对象是张量。我们下面就编写一个 constant_sum.py Python 文件,使用 PaddlePaddle 计算一个 [[1, 1], [1, 1]] * [[1, 1], [1, 1]] 。 首先导入 PaddlePaddle 库,大部分的 API 都在 paddle.fluid 下。 import paddle . fluid as fluid 定义两个张量的常量

《Deep Attention Neural Tensor Network for Visual Question Answering》视觉问答的深度注意神经张量网络论文理解

陌路散爱 提交于 2019-12-10 02:20:32
一、介绍 在本文中,我们提出了一种新颖的深度关注神经张量网络(DA-NTN)用于视觉问题回答,它可以发现基于张量表示的图像,问题和答案之间的联合相关性。 首先,我们通过双线性特征对成对交互(例如,图像和问题)中的一个建模,进一步用三维(例如,答案)将其编码为双线性张量积的三元组。 其次,我们通过不同的答案和问题类型分解不同的三元组的相关性,并进一步在张量上提出一个切片式注意模块,以选择最具判别力的推理过程进行推理。 第三,我们通过学习带有 KL 散度损失的标签回归来优化建议的 DA-NTN。这样的设计使得可扩展的训练和在大量答案集上的快速收敛成为可能。 在这篇论文中我们将答案嵌入学习引入到我们的方法中,有三个目的。首先,我们希望对问题答案三元组之间的关系进行建模,以帮助推理。其次,答案嵌入可能会纠正问题的误解,尤其是对于复杂的句法结构的问题。第三,答案嵌入可以帮助确定问题的类型并决定使用哪种推理过程。 二、模型 2.1开放式可视问答框架的体系结构 红色框中的结构是生成问题表示Vq和图像与问题特征向量Vqi融合的基本模型,两个蓝盒中的结构是我们提出的深层关注神经张量网络,利用蓝盒神经张量网络来度量图像-问题-答案三元组之间的相关性。 VQA任务的目标是提供一个给出图像 I ∈ I(张量)和相应的问题 q ∈ Q(张量),先前的大部分工作都把开放的VQA看作是一项分类任务: