pytorch统计矩阵非0的个数_Pytorch之线性代数

本文详细介绍了PyTorch中矩阵的初始化、元素运算、矩阵乘法、转置、最大最小值求解、行列式、逆与伪逆、对称性质、秩和迹,以及如何求解矩阵的特征值和特征向量。通过实例展示了各种操作的代码实现,是理解PyTorch矩阵操作的实用指南。
摘要由CSDN通过智能技术生成

矩阵

矩阵初始化

矩阵元素运算

矩阵的乘法

矩阵的转置

矩阵对应列行的最大值,最小值,和

矩阵的其他操作:行列数、切片、复制、非0元素的下标

矩阵的行列式

矩阵的逆和伪逆

矩阵的对称

矩阵的秩、迹

矩阵求解

矩阵的特征值与特征向量(EVD)

矩阵

1. 矩阵初始化

Tensor的初始化

# 全零矩阵

In [1]: import torch

In [2]: myZero = torch.zeros(3,3)

In [3]: myZero

Out[3]:

tensor([[0., 0., 0.],

[0., 0., 0.],

[0., 0., 0.]])

In [4]: type(myZero)

Out[4]: torch.Tensor

In [5]: myZero.dtype

Out[5]: torch.float32

# 全一矩阵

In [6]: myOnes = torch.ones(3,3)

In [8]: myOnes

Out[8]:

tensor([[1., 1., 1.],

[1., 1., 1.],

[1., 1., 1.]])

# 单位矩阵

In [9]: myEye = torch.eye(5)

In [10]: myEye

Out[10]:

tensor([[1., 0., 0., 0., 0.],

[0., 1., 0., 0., 0.],

[0., 0., 1., 0., 0.],

[0., 0., 0., 1., 0.],

[0., 0., 0., 0., 1.]])

# 对称矩阵

In [11]: a1 = [1,2,3,4,5]

In [13]: a1 = torch.tensor(a1)

In [14]: a1

Out[14]: tensor([1, 2, 3, 4, 5])

In [15]: myDiag = torch.diag(a1)

In [16]: myDiag

Out[16]:

tensor([[1, 0, 0, 0, 0],

[0, 2, 0, 0, 0],

[0, 0, 3, 0, 0],

[0, 0, 0, 4, 0],

[0, 0, 0, 0, 5]])

# 随机矩阵

In [17]: myRand = torch.rand(3,3)

In [18]: myRand

Out[18]:

tensor([[0.9588, 0.0139, 0.2303],

[0.4332, 0.1916, 0.4152],

[0.4848, 0.3361, 0.9799]])

直接创建tensor

In [19]: a = torch.tensor([[1,2,3],[4,5,6]])

In [20]: a

Out[20]:

tensor([[1, 2, 3],

[4, 5, 6]])

通过from_numpy() 函数将ndarray数据类型转化成矩阵(tensor)

In [21]: import numpy as np

In [22]: a = np.arange(12).reshape(3,4)

In [23]: b = torch.from_numpy(a)

In [24]: b

Out[24]:

tensor([[ 0, 1, 2, 3],

[ 4, 5, 6, 7],

[ 8, 9, 10, 11]], dtype=torch.int32)

2. 矩阵元素运算

矩阵的元素运算是指矩阵在元素级别的加、减、乘、除运算。

(1)元素相加和相减。

条件:矩阵的行数和列数必须相同。

数学公式:

In [27]: myOnes = torch.ones(4,4)

In [28]: myOnes

Out[28]:

tensor([[1., 1., 1., 1.],

[1., 1., 1., 1.],

[1., 1., 1., 1.],

[1., 1., 1., 1.]])

In [29]: myEye = torch.eye(4)

In [30]: myEye

Out[30]:

tensor([[1., 0., 0., 0.],

[0., 1., 0., 0.],

[0., 0., 1., 0.],

[0., 0., 0., 1.]])

In [31]: myOnes + myEye

Out[31]:

tensor([[2., 1., 1., 1.],

[1., 2.,

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值