【PyTorch】PyTorch中张量(Tensor)计算操作

PyTorch深度学习总结

第五章 PyTorch中张量(Tensor)计算操作


文章目录


前言

上文介绍了PyTorch中张量(Tensor)的拆分和拼接操作,本文将介绍张量的计算操作。


一、张量比较大小

函数 描述
torch.allclose() 比较两个元素是否接近
torch.eq() 逐元素比较是否相等
torch.equal() 判断两个张量是否具有相同的形状和元素
torch.ge() 逐元素比较大于等于
torch.gt() 逐元素比较大于
torch.le() 逐元素比较小于等于
torch.lt() 逐元素比较小于
torch.ne() 逐元素比较不等于
torch.isnan() 判断是否为缺失值

1、torch.allclose()

函数用法:
torch.allclose(A, B, rtol=,atol=)

判断是否接近的公式如下:
∣ A − B ∣ ≤ a t o l + r t o l × ∣ B ∣   . |A-B| \leq atol+rtol\times|B|\,. ∣A−B∣≤atol+rtol×∣B∣.

python 复制代码
# 引入库
import torch

# 创建张量A
A = torch.tensor([10.0, 10.0])

# 测试函数
print(torch.allclose(A, A, rtol=0.1, atol=0.01,equal_nan=False))

输出结果为:False


2、torch.eq()和torch.equal()

①函数用法:
torch.eq(A, B)

主要比较元素之间的关系,即两个对应元素是否相等。

python 复制代码
# 测试函数
print(torch.eq(A, A))

输出结果为:tensor(True, True)


②函数用法:
torch.equal(A, B)

主要比较张量之间的关系,即两个张量形状和大小是否相等。

python 复制代码
# 测试函数
print(torch.equal(A, A))

输出结果为:True


3、ge、gt、le、lt、ne函数

函数用法:
torch.ge(A, B)

主要用于逐元素比较,看是否大于等于( ≥ \geq ≥)。

注:以上几个函数除本身意义不同外,其他用法几乎相同;故本文只针对torch.ge()进行展示。

python 复制代码
# 生成张量
B = torch.tensor([11.0, 9.0])

# 测试函数
print(torch.ge(A, B))

输出结果为:tensor(False, True)


4、torch.isnan()

函数用法:
torch.isnan(A)

判断张量A对应元素是否为缺失值。

python 复制代码
print(torch.isnan(A))
print(torch.isnan(torch.tensor([0, 1, float("nan")])))

输出结果:

tensor(False, False)

tensor(False, False, True)


二、基本运算

1、四则运算(加减乘除)

生成试验数组:

python 复制代码
# 引入库
import torch

# 生成张量
A = torch.arange(6).reshape(2,3)
B = torch.linspace(1, 6, steps=6).reshape(2,3) # 在1-6之间生成5个等步长的元素组成张量
print(A, B)

输出结果为:

tensor(\[0, 1, 2, 3, 4, 5])

tensor(\[1., 2., 3., 4., 5., 6.])

加减乘除运算为:+、-、*、/

整除://

幂运算为:torch.pow()或**

示例:

python 复制代码
print(A+B)
print(A-B)
print(A*B)
print(A/B)
print(B//A)
print(A**2)
print(torch.pow(A, 2))

输出结果为:

tensor(\[ 1., 3., 5., 7., 9., 11.])

tensor(\[-1., -1., -1., -1., -1., -1.])

tensor(\[ 0., 2., 6., 12., 20., 30.])

tensor(\[0.0000, 0.5000, 0.6667, 0.7500, 0.8000, 0.8333])

tensor(\[inf, 2., 1., 1., 1., 1.])

tensor(\[ 0, 1, 4, 9, 16, 25])

tensor(\[ 0, 1, 4, 9, 16, 25])

2、其他计算

函数 描述
torch.exp() 张量的指数函数
torch.log() 张量的对数函数
torch.sqrt() 张量的平方根
torch.clamp_max() 根据最大值裁剪
torch.clamp_min() 根据最小值裁剪
torch.clamp() 根据范围裁剪
torch.t() 计算矩阵的转置
torch.matmul() 计算矩阵的转置
torch.inverse() 计算矩阵的逆矩阵
torch.trace() 计算矩阵的迹
相关推荐
todoitbo8 分钟前
Q1 MuJoCo 模型里的 49 项传感器定义与 60 维数据:一次关节和 IMU 输出核验
人工智能·ai·机器人·1024程序员节·启元机器人
RFID科技的魅力13 分钟前
2026 年 RFID 资产标签批量制作怎么做?RFID 标签打印机实操指南
运维·人工智能·嵌入式硬件·物联网
再__努力1点15 分钟前
RK3576/RV1126B多路视频 AI 开源引擎 CosmoEdge:从模型到交付,轻松搞定!
人工智能·opencv·计算机视觉·架构·课程设计
小oo呆26 分钟前
【学习心得】Python协程
python
IT_陈寒26 分钟前
Redis的LRU淘汰策略坑了我一整天
前端·人工智能·后端
墨抒颖 msy.plus27 分钟前
矩阵、注意力与 GPU:拆解 DeepGEMM 与 FlashMLA
人工智能·llm·gpu·源码解析·1024程序员节·deepseek
甲维斯38 分钟前
K3.1pro你这“机灵鬼”,3D建模无敌了!
人工智能
企业数字化笔记39 分钟前
AI视频卡顿怎么定位?用帧差和时间戳区分静帧与播放问题
人工智能
信誓旦旦的程序猿41 分钟前
【Python量化实战宝典 #22】涨跌停、连板情绪手册:情绪指标构建(Python 可跑)
python·1024程序员节·股票数据api·股票数据api接口·股票api数据接口·股票量化数据api·股票量化数据接口