首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏小胡学编程

    PyTorch2:张量的运算

    2) 的矩阵张量: >>> a = torch.ones(22) >>> b = torch.zeros_like(a) >>> print(a, b) tensor([[1., 1.],          1, 2, 0, 1, 2], [3, 4, 5, 3, 4, 5]]) torch.stack(tensors, dim=0, out=None) 将两个张量叠加到一起,这会产生一个新的轴 比如 A = torch.Tensor([a1, a2]) A + 2. = torch.Tensor([a1+2., a2+2.]) 3.1.1 张量的四则运算 ---- torch.add(input ([1, 2]), torch.tensor([1, 2])) True 两个张量的元素之间互相比较,每个比较返回一个布尔值,最终返回一个与被比较元素形状相同的张量: torch.eq(input, other ([1, 222, 3, 22, 3, 0, 2]) torch.normal(mean, std, size, *, out=None):生成服从均值为 mean,方差为 std 的正态分布张量

    3K20发布于 2020-08-05
  • 来自专栏深度学习

    【深度学习】Pytorch教程(八):PyTorch数据结构:2张量的数学运算(6):高维张量:乘法、卷积(conv2d~四维张量;conv3d~五维张量

    在PyTorch中,可以使用size()方法获取张量的维度信息,使用dim()方法获取张量的轴数。 2. 向量运算 【深度学习】Pytorch 系列教程(三):PyTorch数据结构:2张量的数学运算(1):向量运算(加减乘除、数乘、内积、外积、范数、广播机制) 2. 矩阵运算 【深度学习】Pytorch 系列教程(四):PyTorch数据结构:2张量的数学运算(2):矩阵运算及其数学原理(基础运算、转置、行列式、迹、伴随矩阵、逆、特征值和特征向量) 3. (tensor1, tensor2) print(result.shape) torch.mul:用于对两个张量进行逐元素相乘,即*运算符,会将两个张量的每个元素进行相乘。 (tensor1, tensor2.T) # 结果为逐元素相乘后的张量 print("\nMul result:") print(result_mul) 乘法计算原则 张量的维度匹配:两个张量进行乘法操作时

    1.2K10编辑于 2024-07-30
  • 来自专栏王的机器

    张量 101

    1 线性代数的张量 线性代数大家肯定学过标量、向量和矩阵,它们分别称为 0 维张量、1 维张量2张量,而高于 2 维的张量统称为 n 维张量 (n ≥ 3)。 ? # 0维张量 X0 = np.array(42) # 1维张量 X1 = np.array( [1 2] ) # 2张量 X2 = np.array( [1 2], [3 这样机器学习要处理的张量至少从 2 维开始。 3.2 2D 数据表 2张量就是矩阵,也叫数据表,一般用 csv 存储。 ? X2 压缩之后的形状是 (4, 2),是一个 2张量。 ? X2 压缩之后的形状还是 (5, 2),是一个 2张量。 ?

    3.5K20发布于 2019-07-05
  • 来自专栏python3

    Python3之弹性力学——应力张量2

    问题 已知某应力张量的分量为 \[ \sigma_{11}=3,\quad\sigma_{12} = \sigma_{13} = 1, \quad \sigma_{22} = \sigma_{33} = 应力张量 已知应力张量有如下形式 \[ \left[ \begin{array}{ccc} \sigma_{x} & \tau_{xy} & \tau_{xz}\\ \tau_{yx} & \sigma {n} = \left(0, \dfrac{1}{\sqrt{2}}, \dfrac{1}{\sqrt{2}}\right)\] n = Matrix([[0], [1], [1]])/sqrt(2) n \[\left[\begin{matrix}0\\\frac{\sqrt{2}}{2}\\\frac{\sqrt{2}}{2}\end{matrix}\right]\] 应力矢量 \(\boldsymbol sigma_n \[\left[\begin{matrix}2\end{matrix}\right]\] 剪应力 \[\tau_n = \sqrt{T^2 - \sigma_n^2}\] tau_n

    75230发布于 2020-01-21
  • 来自专栏毛利学Python

    tensor张量

    张量 在TensorFlow系统中,张量的维数来被描述为阶.但是张量的阶和矩阵的阶并不是同一个概念.张量的阶(有时是关于如顺序或度数或者是n维)是张量维数的一个数量描述.比如,下面的张量(使用Python 中list定义的)就是2阶. t=[[1,2,3],[4,5,6],[7,8,9]] ? 12.3-4.85j, 7.5-6.23j])>] 2张量 # 2张量mymat = tf.Variable([[7],[11]], tf.int16)myxor = tf.Variable([[ ), dtype=float32)x = tf.constant([[1.0, 2.0]]) #定义一个 2张量等于[[1.0,2.0]]w = tf.constant([[3.0], [4.0]] ) #定义一个 2张量等于[[3.0],[4.0]]y = tf.matmul(x, w) #实现 xw 矩阵乘法print (y) #打印出结果tf.Tensor([[11.]], shape=(

    1.1K20发布于 2019-11-04
  • 来自专栏产品经理的人工智能学习库

    张量 – Tensor

    文章目录 小白版本 张量是属于线性代数里的知识点,线性代数是用虚拟数字世界表示真实物理世界的工具。 百度百科版本 张量(tensor)理论是数学的一个分支学科,在力学中有重要应用。张量这一术语起源于力学,它最初是用来表示弹性介质中各点应力状态的,后来张量理论发展成为力学和物理学的一个有力的数学工具。 张量之所以重要,在于它可以满足一切物理定律必须与坐标系的选择无关的特性。张量概念是矢量概念的推广,矢量是一阶张量张量是一个可用来表示在一些矢量、标量和其他张量之间的线性关系的多线性函数。 查看详情 维基百科版本 在数学中,张量是一种几何对象,它以多线性方式将几何向量,标量和其他张量映射到结果张量。因此,通常在基础物理和工程应用中已经使用的矢量和标量本身被认为是最简单的张量。 另外,来自提供几何矢量的矢量空间的双空间的矢量也被包括作为张量。在这种情况下,几何学主要是为了强调任何坐标系选择的独立性。 查看详情

    1.5K20发布于 2019-12-18
  • 来自专栏xiaosen

    PyTorch张量

    、torch.DoubleTensor 创建指定类型的张量 import torch data = [1, 2, 3] tensor = torch.tensor(data) print(tensor import numpy as np import torch def test(): data1 = torch.tensor([[1, 2], [3, 4]]) data2 = CPU上创建张量 import torch tensor_cpu = torch.tensor([1, 2, 3]) 在 GPU 上创建张量(如果 GPU 可用): tensor_gpu = tensor_cpu.to 我们也可以将张量创建在 GPU 上, 能够利用对于矩阵计算的优势加快模型训练。将张量移动到 GPU 上有如下方法: 1. 使用 cuda 方法 2. 直接在 GPU 上创建张量 3. 以下是使用 PyTorch 进行张量基本运算的代码案例: import torch # 创建张量 x = torch.tensor([1, 2, 3]) y = torch.tensor([4, 5

    65510编辑于 2024-03-24
  • 来自专栏xiaosen

    Tensors张量操作

    import torch data =[[1,2],[3,4]] x_data = torch.tensor(data) print(x_data) tensor([[1,2],         [ ]]) # 在CPU上的张量 x_gpu = x_cpu.to(device) # 移动到GPU 数据的运算 这些操作中的每一个都可以在GPU上运行(通常比在CPU上运行的速度更快)。 (即形状为(1,)或者空的张量)中提取出Python的原生数值(例如整数、浮点数)时,可以使用.item()方法。 这个方法会返回张量中的数据,将其转换为Python的基本数据类型。 _2],dim=0)) print(torch.cat([tensor_1,tensor_2],dim=1)) 我们平时的张量有两个维度↓和→: ↓就是0维度,→就是1维度。 

    65610编辑于 2024-05-28
  • 来自专栏python深度学习

    张量张量网络背景和意义-基础知识

    实际上,一阶张量代表的一个矢量,比如我们平时用python所定义的一个数组变量: 1 2 3 x = [1, 0] y = [0, 1, 0] z = [1, 2, 3, 4] 那么这里的x,y,z都是一阶的张量 而二阶张量所表示的含义是一个二维的矩阵,如我们常见的python多维数组: 1 2 M = [[1, -1], [-1, 1]] N = [[1, 3], [2, 4], [5, 6]] 这里定义的M, 我们先以两种形式的python矩阵运算来说明张量计算的表示方法: 1 2 3 4 5 6 7 import numpy as np M = np.random.rand(2, 2) v = np.random.rand 0.88983912] 同时我们也考虑下另外一种张量运算的场景,一个高阶的张量与另外一个高阶的张量进行运算: 1 2 3 4 5 6 7 import numpy as np A = np.random.rand 'B:', B) print ('C:', C) 这一串python代码表示的计算过程为:C1×2×2=A1×2×2×2⋅B2×2×2C1×2×2=A1×2×2×2⋅B2×2×2,由于这里的多维张量运算已经不能使用普通的

    2.2K10发布于 2021-04-02
  • 来自专栏机器学习/数据可视化

    TensorFlow张量知识

    TensorFlow张量 本文记录的是TensorFlow中的张量基础知识,包含: 张量类型 张量数据类型 张量创建 张量类型 维数 阶 名字 例子 0-D 0 标量scalar s = 1,2,3 1 -D 1 vector v = [1,2,3] 2-D 2 matrix m = [[1,2,3],[4,5,6]] n-D n tensor t = [[[ (有n个括号) 张量可以表示0-n阶的数组 创建张量Tensor 创建张量的一般方式: tf.constant(张量内容, dtype=数据类型[可选]) 直接生成 import tensorflow as tf import numpy as ])> b.dtype tf.int64 b.shape TensorShape([2, 3]) print(b.shape) (2, 3) 基于numpy数组 方式1:通过numpy数组来创建张量: 维度的记忆方式: 一维:直接写个数 二维:用[行, 列]表示 多维:用[n,m,j,k…]表示 全0张量 tf.zeros(3) <tf.Tensor: shape=(3,), dtype=float32

    73030编辑于 2023-08-23
  • 来自专栏Michael阿明学习之路

    Pytorch 张量tensor

    文章目录 1. tensor 张量 2. 运算 3. 切片、形状size()、改变形状view() 4. item() 只能读取一个元素 参考 http://pytorch123.com/ 1. tensor 张量 empty 不初始化 import ]]) tensor([[5.5000, 3.0000], [2.0000, 4.0000]]) new_* 方法,继承之前张量的属性,也可以覆盖以前的属性 x = x.new_ones 4]) 2. ) print(res.size()) # torch.Size([2, 2]) torch.add(x,y,out=res) # out 为输出变量 print(res) print(res.size

    87510发布于 2021-02-19
  • 来自专栏计算机视觉理论及其实现

    Pytorch张量(Tensor)复制

    ., 2., 3.], requires_grad=True)clone_x = x.clone()detach_x = x.detach()clone_detach_x = x.clone().detach ---tensor([-0.0043, 0.3097, -0.4752])TrueNoneFalseFalse--------------------------------------------2. x= torch.tensor([1., 2., 3.], requires_grad=True)clone_x = x.clone()detach_x = x.detach()clone_detach_x x= torch.tensor([1., 2., 3.], requires_grad=False)clone_x = x.clone().requires_grad_()detach_x = x.detach x = torch.tensor([1., 2., 3.], requires_grad=True)f = torch.nn.Linear(3, 1)w = f.weight.detach()print

    4.8K21编辑于 2022-09-02
  • 来自专栏xiaosen

    张量的基础操作

    import torch # 创建两个张量 tensor1 = torch.tensor([1, 2, 3]) tensor2 = torch.tensor([4, 5, 6]) # 使用 torch.stack 2, 3], [4, 5, 6]]) 张量索引操作 我们在操作张量时,经常需要去进行获取或者修改操作,掌握张量的花式索引操作是必须的一项能力。 通过指定起始和终止索引以及步长,可以获取张量中的一部分。例如,t1[2:8] 将会返回从索引2到7的张量元素,形成一个新张量。 如果指定步长为2,如 t1[2:8:2],则会隔一个元素取一个,返回索引为2、4、6的元素形成的新张量。 高级索引:包括布尔索引和掩码索引等。 import torch # 创建一个张量 t = torch.tensor([1, 2, 3, 4, 5]) # 范围索引 print(t[1:3]) # 输出 [2, 3] # 布尔索引 b

    1.6K10编辑于 2024-03-24
  • 来自专栏合集

    Python|张量创建操作

    device:可选参数,返回张量的设备,默认使用当前设备。有cpu张量和cuda张量两种形式。 requires_grad:可选参数,bool。默认False,如果自动梯度会在返回的张量上记录操作。 例子 >>> a = numpy.array([1, 2, 3]) >>> t = torch.as_tensor(a) >>> t tensor([ 1, 2, 3]) >>> t[0] = -1 >>> a array([-1, 2, 3]) >>> a = numpy.array([1, 2, 3]) 2), (1, 2)) >>> t tensor([[0.9039, 1.0795], [0.6291, 0.1586]]) >>> t = torch.as_strided (x, (2, 2), (1, 2), 1) tensor([[0.6291, 0.1586], [1.0795, 2.1939]]) torch.from_numpy

    1.6K10发布于 2020-05-27
  • 来自专栏叶子陪你玩编程

    python连连看与记忆翻牌游戏(2

    上篇python连连看与记忆翻牌游戏(1)讲了连连看的核心判断实现。(最后的remove边界判断有点问题,没有先判断两者是否相等。 感谢@井老师提醒) 原来的: def remove(p1,p2): # p1 和 p2 都在边界,可以直接删除 if (p1[0] == p2[0]) and (p1[0]==0 or (array[0])-1): print('上下边界可以直接删除') 这里直接前面加一句判断是否是同一个点: def remove(p1,p2): if p1[0]==p2[0] and p1[1]==p2[1]: return False # p1 和 p2 都在边界,可以直接删除 if (p1[0] == p2[0]) and (p1[0]= self.on_update() if __name__ == '__main__': game = MyGame() game.run() 上面的代码改改,可以变成记忆翻牌的游戏

    1.8K20编辑于 2022-05-22
  • 来自专栏米虫的家

    TensorFlow2.X学习笔记(3)--TensorFlow低阶API之张量

    as tf import numpy as np # 1、创建一个一维张量 a = tf.constant([1,2,3],dtype = tf.float32) tf.print(a) # 2、 创建范围1-10,间隔为2张量 tf.print(tf.range(1,10,delta=2)) # 3、0.0-6.18之间分成100份 tf.print(tf.linspace(0.0,2*3.14,100 )) # 4、创建3*3的零向量 tf.print(tf.zeros([3,3])) # 5、创建3*2,用5填充的张量 tf.print( tf.fill([3,2],5)) # 6、均匀分布随机 indices = tf.where(c<0) #将张量的第[0,0]和[2,1]两个位置元素替换为0得到新的张量 d = c - tf.scatter_nd([[0,0],[2,1]],[c[0,0 2、如果两个张量在某个维度上的长度是相同的,或者其中一个张量在该维度上的长度为1,那么我们就说这两个张量在该维度上是相容的。 3、如果两个张量在所有维度上都是相容的,它们就能使用广播。

    1.8K30发布于 2020-09-24
  • 来自专栏数据分析与挖掘

    【colab pytorch】张量操作

    1、在pytorch中,有以下9种张量类型 ? 2、查看张量的基本信息 tensor=torch.randn(3,4,5) print(tensor.size()) print(tensor.type()) print(tensor.dim()) torch.Size 例如当参数是3个10x5的张量,torch.cat的结果是30x5的张量, 而torch.stack的结果是3x10x5的张量。 torch.allclose(tensor1, tensor2) # float tensor torch.equal(tensor1, tensor2) # int tensor 17、张量扩展 torch.sum((X1[:,None,:] - X2) ** 2, dim=2))

    1.8K20发布于 2020-08-26
  • 来自专栏数据科学(冷冻工厂)

    深度学习:张量 介绍

    4D 张量可以被认为是 3D 张量的四维列表: 考虑 4D 张量的另一种方式是使用 3D 张量作为其元素的向量。这些可能会变得越来越复杂,但这是继续使用张量进行运算所必需的程度。 对于本节中的逐元素运算,假设两个张量的形状为 (3, 3, 2)。这意味着两个张量都包含三个 (3,2) 矩阵。 ([3, 2, 3]) 通过适当的调整大小,现在可以使用 matmul 或 @ 执行张量乘法。 对于本部分,假设形状为 (2, 3, 3, 2)。这意味着两个 4D 张量都包含两个 3D 张量,并且每个张量都包含三个 (3,2) 矩阵。 结果的形状应为 (2, 3, 3, 2) x (2, 3, 2, 3) = (2,3,3,3)。这意味着将有两个 3D 张量,每个张量将包含三个 (3,3) 矩阵。

    1.4K20编辑于 2023-10-27
  • 来自专栏全栈程序员必看

    记忆化递归(记忆化搜索)

    我看了答案还是有些不能完全理解,于是又去b站翻了翻教程基础DP,其中提到记忆化的递归(也称记忆化搜索),相当于结合了dp和递归的优点(这时我又觉得比DP还厉害),然后就准备写写记忆化递归。 ---- 目录 ​ 1.记忆化递归的解释与分析 ​ 2.记忆化递归的应用 ---- 一、记忆化递归的解释与分析 前面说道它结合了dp和递归的优点,分别是记忆化和逻辑清晰易懂。 下面还是结合斐波那契数列的来理解: F(0)=F(1)=1; F(n)=F(n-1)+F(n-2) (n≥2,n∈N*); 这里直接给出函数代码,再进行解释: int F(int n){ if(n<2)f[n]=1; //这里f[]是储存数据的数组 else if(f[n]==0) //这里是重点 f[n]=F(n-1)+F(n-2); return f[n]; } 代码解释 打个比方,dp就相当于计算了一个方阵上所有的点(无论有没有利用价值),而记忆化递归相当于计算了方阵上有价值的点,因此记忆化递归的运行时间可能比dp还要短。

    68460编辑于 2022-09-17
  • 来自专栏Python与算法之美

    张量的结构操作

    前面几章我们对低阶API已经有了一个整体的认识,本章我们将重点详细介绍张量操作和动态计算图。 张量的操作主要包括张量的结构操作和张量的数学运算。 张量结构操作诸如:张量创建,索引切片,维度变换,合并分割。 张量数学运算主要有:标量运算,向量运算,矩阵运算。另外我们会介绍张量运算的广播机制。 本篇我们介绍张量的结构操作。 一,创建张量 张量创建的许多方法和numpy中创建array的方法很像。 形状的张量 c = torch.reshape(b,[1,3,3,2]) # b.view([1,3,3,2]) print(c) tensor([[[[126, 195], ([2]) torch.Size([1, 2]) torch.transpose可以交换张量的维度,torch.transpose常用于图片存储格式的变换上。

    2.3K20发布于 2020-07-20
领券