pytorch入门(三)线性代数的实现

线性代数

标量:只有一个元素的张量表示

import torch

x = torch.tensor([3.0])
y = torch.tensor([2.0])
print(x+y)
print(x*y)
print(x/y)
print(x**y)

在这里插入图片描述

向量:标量值组成的列表

z = torch.arange(4)
print(z)
print(z[3])

通过张量的索引访问任意一元素
在这里插入图片描述
通过指定两个分量m n来创建一个形状为m*n的矩阵

h = torch.ones(25).reshape(5,5)
print(h)

在这里插入图片描述

print(len(h))  # 张量大小
print(h.shape)  # 张量形状

在这里插入图片描述
矩阵的转置

h = torch.arange(24).reshape(4,6)
print(h.T)

在这里插入图片描述

  • 对称矩阵(A == A.T)
B = torch.tensor([[1,2,3],[2,0,4],[3,4,5]])
print(B)
print(B.T)
print(B == B.T)

在这里插入图片描述

  • 通过分配新的内存,实现张量复制
j = torch.arange(20, dtype=torch.float32).reshape(5,4)
k = j.clone()  # 将j的副本分配给k
print(k)
print(j+k)

在这里插入图片描述
两个矩阵按照元素的乘法称为 哈达玛积

  • 求矩阵所有元素的和
    print(j.sum())
    在这里插入图片描述
a = torch.arange(20*2).reshape(2,5,4)
print(a.shape)
print(a.sum())

在这里插入图片描述

  • 指定求和张量的轴
a = torch.arange(20*2).reshape(2,5,4)
print(a.shape)
print(a.sum())
print(a)
print(a.sum(axis=0))
print(a.sum(axis=1))

在这里插入图片描述

axis0:缩小了2这个维度,即上图的两个张量相加
axis0:缩小了5这个维度,即上图每个表的列相加
print(a.sum(axis=[0,1]))综合了上面两个实例

  • 求平均值
    print(a.sum()/a.numel())等价于print(a.mean())
    print(a.mean(axis=0))等价于print(a.sum(axis=0)/a.shape[0])

  • 计数求和时保持轴数不变
    print(a.sum(axis=1,keepdims=True))
    轴数改变
    在这里插入图片描述
    轴数不变
    在这里插入图片描述

  • 通过广播将a/a.sum()
    print(a/a.sum())

  • 某个轴计算总和
    print(a.cumsum(axis=0))

  • 点积(相同位置相乘)
    q1 = torch.ones(4,dtype=float32) q2 = torch.ones(4,dtype=float32) print(q1) print(q2) print(torch.dot(q1,q2))
    在这里插入图片描述
    等价于
    print(sum(q1*q2))

补充

用GPU存储张量
s = torch.randn(3000,3000,device="cuda:0") print(s)

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

啊~小 l i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值