torch:tensor的运算

1、加减乘除

复制代码
import torch

a = torch.tensor([[1, 2], [3, 4]])
b = torch.tensor([[5, 6], [7, 8]])

# 加法
c = a + b          # tensor([[ 6,  8], [10, 12]])

# 减法
d = a - b          # tensor([[-4, -4], [-4, -4]])

# 乘法(逐元素相乘,不是矩阵乘法)
e = a * b          # tensor([[ 5, 12], [21, 32]])

# 除法
f = a / b          # tensor([[0.2000, 0.3333], [0.4286, 0.5000]])

2、矩阵乘法的三种

复制代码
a = torch.tensor([[3., 3.],
                  [3., 3.]])
b = torch.ones(2, 2)  # tensor([[1., 1.],
                      #         [1., 1.])
​
torch.mm(a, b)
# tensor([[6., 6.],
#         [6., 6.])
torch.matmul(a, b)
# tensor([[6., 6.],
#         [6., 6.])
a@b
# tensor([[6., 6.],
#         [6., 6.])

3、tensor运算

复制代码
import torch

x = torch.tensor([1, 2, 3, 4])

# 平方
x2 = x ** 2                # tensor([1, 4, 9, 16])

# 立方
x3 = x ** 3                # tensor([ 1,  8, 27, 64])

# 任意次方(例如 0.5 次方即开平方)
x_half = x ** 0.5          # tensor([1.0000, 1.4142, 1.7321, 2.0000])

torch.pow()等价与**

复制代码
y = torch.pow(x, 2)        # 同 x ** 2
y = torch.pow(2, x)        # 也可以底数为标量:2^x

平方根相关函数

复制代码
torch.sqrt(x):计算 x ** 0.5,更高效

torch.rsqrt(x):计算 1 / sqrt(x)(倒数平方根)

torch.square(x):计算 x ** 2


a = torch.tensor([4.0, 9.0, 16.0])
print(torch.sqrt(a))       # tensor([2., 3., 4.])
print(torch.square(a))     # tensor([16., 81., 256.])

指数与幂

复制代码
torch.exp(x):计算 e^x

torch.log(x):自然对数

注意:对负数开平方会得到 nan(实数域),如需复数请用 torch.complex64

a.floor()向下取整

a.ceil()向上取整

a.trunc()取整数部分

a.frac()取小数部分

a.round()四舍五入

4、clamp() 裁剪函数用法

torch.clamp()(及 tensor.clamp())用于将张量中的每个元素限制在指定的数值范围 [min, max]

  • 小于 min 的元素变为 min

  • 大于 max 的元素变为 max

  • 其余元素保持不变

复制代码
import torch

x = torch.tensor([-2, 1, 3, 5, 8])

# 裁剪到 [0, 5] 之间
y = torch.clamp(x, min=0, max=5)   # tensor([0, 1, 3, 5, 5])

# 只设置下限
y = x.clamp(min=0)                 # tensor([0, 1, 3, 5, 8])

# 只设置上限
y = x.clamp(max=4)                 # tensor([-2, 1, 3, 4, 4])
相关推荐
绿智校园8 分钟前
拉孚在AI领域的应用全景:从DeepBasic Folar数据底座到空间认知智能体,如何让物理空间“长“出智能
人工智能
美团技术团队10 分钟前
《Agent 评测白皮书》系列01:Agent 评测全览
人工智能
烟雨江南78515 分钟前
呼叫中心如何用语音识别做客服质检?从人工抽检到全量通话分析的落地方案
人工智能·websocket·音视频·语音识别·ai客服
geneculture17 分钟前
融智学大字符串公式双重形式化信息本体论
人工智能·融智学应用场景·融智时代(杂志)·邹晓辉的融智实践·近现代数学·大字符串公式·双重形式化
烟雨江南aabb18 分钟前
大模型数据标注第一弹-什么是数据标注
人工智能·数据标注
V哥AI增长23 分钟前
AI搜索引用机制解析:影响内容被选中的5个因素
人工智能
Hali_Botebie26 分钟前
PyTorch 内存布局,.view()要合并哪两个维度(比如 B 和 G),这两个维度在内存里就必须“紧挨着”。
人工智能·pytorch·python
2601_9505135932 分钟前
GEO 技术详解:AI 搜索引擎如何决定推荐谁,企业内容怎么适配
人工智能·搜索引擎
万联WANFLOW34 分钟前
技术演进与安全博弈中的 OpenAI GPT-6 Astra
网络·人工智能·gpt·安全·业界资讯
四点半-企业AI获客36 分钟前
GEO 技术实践:从内容可及性到结构化数据,让 AI 搜索引擎正确索引你的站点
人工智能·搜索引擎