张量

标量、向量、矩阵、张量

大兔子大兔子 提交于 2019-11-27 15:47:47
标量(saclar ) : 就是一个单独的数,没有方向,只具有数值大小,用斜体来表示,被赋予 小写的变量 名称,比如 斜体小写字母 k 可以表示一条线的斜率, n 可以表示一个集合中元素的数目。 向量(vector): 一个向量是一列数,这些数是有序排列的,通过次序中的索引,我们可以确定每个单独的数,通常用 粗体的小写变量 名称表示,比如 , 向量中的元素可以通过带脚标的斜体表示。 向量 x 的第一个元素是 x 1 ,第二个元素是 x 2 ,等等。我们也会注明存储在向量中的元素是什么类型的。如果每个元素都属于实数集 R,并且该向量有 n 个元素,那么该向量属 于实数集 R 的 n 次笛卡尔乘积构成的集合,记为 R n 。当我们需要明确表示向量中的元素时,我们会将元素排列成一个方括号包围的总队: 我们可以把向量看作空间重的点,每个元素使不同的坐标轴上的坐标。 有时候我们需要索引向量中的一些元素。在这种情况下,我们定义一个包含这些元素的索引集合,然后将该集合写在脚标处。比如,指定x 1 ,x 3 和x 6 ,我们定义集合s={1,3,6},然后写 作x s。我们用符 - 表示集合的补集中的索引。 比如x_ 1 表示x中除了x 1 以外的所有元素,x _s 表示x中除了x 1 ,x 3 和x 6 外所有的元素构成的向量。 矩阵(matrix): 矩阵是一个二维数组

[Pytorch]Pytorch中tensor常用语法

旧街凉风 提交于 2019-11-27 15:40:45
原文地址: https://zhuanlan.zhihu.com/p/31494491 上次我总结了在PyTorch中 建立随机数Tensor的多种方法 的区别。 这次我把常用的 Tensor的数学运算 总结到这里,以防自己在使用PyTorch做实验时,忘记这些方法应该传什么参数。 总结的方法包括: Tensor求和以及按索引求和: torch.sum() torch.Tensor.indexadd() Tensor元素乘积 :torch.prod(input) 对Tensor求均值、方差、极值: torch.mean() torch.var() torch.max() torch.min() 最后还有在NLP领域经常用到的: 求Tensor的平方根倒数、线性插值、双曲正切 torch.rsqrt(input) torch.lerp(star,end,weight) torch.tanh(input, out=None) 张量数学运算 元素求和 torch.sum(input) → float 返回输入向量input中所有元素的和。 参数: input (Tensor) - 输入张量 例子: a = torch.randn(1, 3) a 1.5796 0.4102 -0.2885 [torch.FloatTensor of size 1x3] torch.sum(a) 1

Pytorch Tensor 常用操作

坚强是说给别人听的谎言 提交于 2019-11-27 13:48:30
https://pytorch.org/docs/stable/tensors.html dtype: tessor的数据类型,总共有8种数据类型,其中默认的类型是torch.FloatTensor,而且这种类型的别名也可以写作torch.Tensor。 device : 这个参数表示了 tensor 将会在哪个设备上分配内存。它包含了设备的类型( cpu 、 cuda )和可选设备序号。如果这个值是缺省的,那么默认为当前的活动设备类型。 require_grad : 这个标志表明这个tensor的操作是否会被pytorch的自动微分系统(Autograd)记录其操作过程,以便后续自动求导。 layout : 表示了tensor的内存分布方式。目前,pytorch支持 torch.strided 方式以及实验性质地支持 torch.sparse_coo 。前者是目前普遍的使用方式。每一个 strided tensor 都关联一个 torch.storage 以保存其数据。 创建 典型的tensor构建方法: torch.tensor(data, dtype=None, device=None, requires_grad=False) 从其他形式转换而来: torch.as_tensor(data, dtype=None, device=None) torch.from_numpy

60 分钟极速入门 PyTorch

霸气de小男生 提交于 2019-11-27 07:52:19
2017 年初,Facebook 在机器学习和科学计算工具 Torch 的基础上,针对 Python 语言发布了一个全新的机器学习工具包 PyTorch。 因其在灵活性、易用性、速度方面的优秀表现,经过2年多的发展,目前 PyTorch 已经成为从业者最重要的研发工具之一。 现在为大家奉上出 60 分钟极速入门 PyTorch 的小教程,助你轻松上手 PyTorch!大家也可直接在实验楼学习: PyTorch 深度学习基础课程 。 PyTorch 基础 PyTorch 使用一种称之为 imperative / eager 的范式,即每一行代码都要求构建一个图,以定义完整计算图的一个部分。即使完整的计算图还没有构建好,我们也可以独立地执行这些作为组件的小计算图,这种动态计算图被称为「define-by-run」方法。 PyTorch 具有两个比较基础的库,所有基础操作都需要提前引入。下面我们引入基础库。 import torch import torchvision PyTorch 张量 PyTorch 的基本数据单元是张量(Tensor),它实际上是一种 N 维数组。 创建 创建一个未初始化 5X3 的矩阵: x = torch.empty(5, 3) 创建一个随机初始化都矩阵: x = torch.rand(5, 3) 创建一个 0 填充的矩阵,指定数据类型为 long: x =

莫烦pytorch 关系拟合(回归)

不问归期 提交于 2019-11-27 02:18:24
思路:首先建立一个数据集用来拟合函数,要拟合函数我们就需要建立一个神经网络,建立好神经网络后,我们再通过训练网络来减小神经网络拟合函数的误差,最后再可视化拟合过程。 建立数据集 我们创建一个一元二次函数:y=a*x^2 + b, 我们给y数据加上一点噪声来更加真实的展示它。 import torch import matplotlib.pyplot as plt #可视化函数库 x = torch.unsqueeze(torch.linspace(-1,1,100), dim=1) y = x.pow(2) + 0.2*torch.rand(x.size()) plt.scatter(x.data.numpy(), y.data.numpy()) plt.show() 函数剖析: torch.linspace(start, end, steps=100, out=None) → Tensor 返回start和end之间长度为steps的一维张量 参数: #start(float) — 点集的起始值 #end(float) — 点集的最终值 #steps(int) — 在start和end间的采样数,即返回多少个数 #out(Tensor, 可选的) — 结果张量 torch.squeeze(input, dim=None, out=None) 将输入张量形状中的1去除并返回

Tensorflow基础杂记

故事扮演 提交于 2019-11-26 07:20:58
测试是否安装成功 jupyter里 import tensorflow as tf tf . __version__ 按Ctrl+Enter执行 '1.2.1' 即为成功。 import tensorflow as tf # 创建一个常量运算, 将作为一个节点加入到默认计算图中 hello = tf . constant ( "Hello, World!" ) # 创建一个TF对话 sess = tf . Session ( ) # 运行并获得结果 print ( sess . run ( hello ) ) b'Hello, World!' 'b’表示Bytes literals(字节文字) 计算图 TensorFlow = Tensor + Flow Tensor张量 数据结构:多维数组 Flow流 计算模型:张量之间通过计算而转换的过程 TensorFlow是一个通过计算图的形式表述计算的编程系统,每一个计算都是计算图上的一个节点,节点之间的边描述了计算之间的关系。 TensorFlow有两种边: 常规边(实线):代表数据依赖关系。一个节点的运算输出成为另一个节点的输入,两个节点之间有tensor流动(值传递)。 特殊边(虚线):不携带值,表示两个节点之间的控制相关性。比如,happens-before关系,源节点必须在目的节点执行前完成执行。 张量 import

tf.SparseTensor

夙愿已清 提交于 2019-11-26 06:28:52
目录 1、__init__ 2、__div__ 3、__mul__ 4、__truediv__ 5、eval() 6、from_value 7、get_shape tf.SparseTensor 函数 SparseTensor 类 定义在: tensorflow/python/framework/sparse_tensor.py . 参见指南: 稀疏张量>稀疏张量表示 代表稀疏张量. TensorFlow表示一个稀疏张量,作为三个独立的稠密张量:indices,values和dense_shape.在Python中,三个张量被集合到一个SparseTensor类中,以方便使用。如果你有单独的indices,values和dense_shape张量,SparseTensor在传递给下面的操作之前,将它们包装在一个对象中。 具体来说,该稀疏张量SparseTensor(indices, values, dense_shape)包括以下组件,其中N和ndims分别是在SparseTensor中的值的数目和维度的数量: indices:density_shape[N, ndims]的2-D int64张量,指定稀疏张量中包含非零值(元素为零索引)的元素的索引。例如,indices=[[1,3], [2,4]]指定索引为[1,3]和[2,4]的元素具有非零值。 values