当前位置:网站首页>Pytorch基础——(2)张量(tensor)的数学运算
Pytorch基础——(2)张量(tensor)的数学运算
2022-07-06 03:18:00 【七上八下的黑】
目录
一、基本运算
import torch
x = torch.tensor([2, 2, 2], dtype=torch.float32)
y = torch.tensor([3, 4, 5], dtype=torch.float32)
- 加法
out1 = torch.add(x, y)
print(out1)
- 减法
out2 = torch.sub(x, y)
print(out2)
- 除法
out3 = torch.div(x, y)
print(out3)
- 乘法
out4 = torch.mul(x, y)
print(out4)
- 矩阵乘法
a = torch.rand((2, 5))
b = torch.rand((5, 3))
out5 = torch.mm(a, b)
print(out5)
print(out5.shape)
- 批量矩阵乘法
batch = 16
c1 = 5
c2 = 10
c3 = 20
x1 = torch.rand(batch, c1, c2) # 16*5*10
x2 = torch.rand(batch, c2, c3) # 16*10*20
out6 = torch.bmm(x1, x2) # 16*5*20
print(out6.shape)
- 指数
out7 = x.pow(3)
print(out7)
- 矩阵指数
x = torch.tensor([[1, 1], [1, 1]]) # (2*2)必须行列数相同
out8 = x.matrix_power(2)
print(out8) # 2*2
- broadcasting
x1 = torch.rand((1, 3))
x2 = torch.rand((3, 3))
out9 = x1 -x2
print(out9)
二、最大值、最小值、均值、绝对值、排序
import torch
x = torch.tensor([[-1, 2, 3], [4, 5, 6]], dtype=torch.float32)
y = torch.tensor([[1, 1, 2], [0, 10, 9]], dtype=torch.float32)
- 最大值、最小值、均值
values, indice = torch.max(x, dim=0) # dim=0表示列,1表示行
print(values) # 最大值的值
print(indice) # 最大值的索引
values, indice = torch.min(x, dim=0) # dim=0表示列,1表示行
print(values) # 最小值的值
print(indice) # 最小值的索引
values, indice = torch.mean(x, dim=0)
print(values)
print(indice)
# 找到最大值、最小值的索引
out1 = torch.argmax(x, dim=0)
out2 = torch.argmin(x, dim=0)
- 绝对值
out = torch.abs(x)
print(out)
- 排序
values, indice = torch.sort(x, dim=1, descending=False) # descending=False表示升序
print(values)
print(indice)
三、tensor的索引
- 简单操作
x = torch.tensor([1, 4, 5, 6, 0, 8, 6, 1, 4, 5])
print(x[0]) # 第一个元素
print(x[1: 6]) # 输出第2个到第6个元素
x = torch.randn((3, 10)) # size 3x10
print(x[0]) # 输出第1行的所有数, size 1x10
print(x[0, :]) # size 1x10
print(x[:, 0]) # 输出第1列的所有数, size 10x1
x = torch.randn((4, 10))
rows = [1, 3]
colums = [2, 9]
print(x[rows, colums]) # (2, 3) (4, 10)
- 带条件的
x = torch.tensor([1, 4, 5, 6, 0, 8, 6, 1, 4, 5])
print(torch.where(x > 5, x, x/2)) # x>5时输出x,否则输出x/2
- 其他
print(x.unique()) # 输出不重复的元素
print(x.numel()) # 输出x中的元素个数
边栏推荐
- Data and Introspection__ dict__ Attributes and__ slots__ attribute
- 华为、H3C、思科命令对比,思维导图形式从基础、交换、路由三大方向介绍【转自微信公众号网络技术联盟站】
- Add one to non negative integers in the array
- The real machine cannot access the shooting range of the virtual machine, and the real machine cannot Ping the virtual machine
- SAP ALV颜色代码对应颜色(整理)
- How to choose PLC and MCU?
- StrError & PERROR use yyds dry inventory
- Custom attribute access__ getattribute__/ Settings__ setattr__/ Delete__ delattr__ method
- 记录一下逆向任务管理器的过程
- Redo file corruption repair
猜你喜欢
随机推荐
February 14, 2022 Daily: Google long article summarizes the experience of building four generations of TPU
The next industry outlet: NFT digital collection, is it an opportunity or a foam?
MySQL learning notes-10-tablespace recycling
Lua uses require to load the shared library successfully, but the return is Boolean (always true)
js 正则过滤和增加富文本中图片前缀
【Kubernetes 系列】一文学会Kubernetes Service安全的暴露应用
Apt installation ZABBIX
Quartz misfire missed and compensated execution
教你用Pytorch搭建一个自己的简单的BP神经网络( 以iris数据集为例 )
XSS challenges bypass the protection strategy for XSS injection
Zhang Lijun: penetrating uncertainty depends on four "invariants"
Mysqldump data backup
Restful style
Redis SDS principle
Inherit day01
MySQL advanced notes
1.16 - 校验码
IPv6 jobs
【概念】Web 基础概念认知
Jenkins basic knowledge ----- detailed explanation of 03pipeline code