torch.reciprocal介绍

在 PyTorch 中,torch.reciprocal 是一个用于计算张量中每个元素倒数的函数。它的作用是逐元素执行倒数计算。如果某个元素为零,则结果会是无穷大 (∞),并产生一个警告。

函数签名

复制代码
torch.reciprocal(input, *, out=None) → Tensor
参数说明
  • input: 输入的张量,其数据类型可以是浮点数或整数。
  • out (可选): 用于存储结果的张量,必须与 input 的形状一致。
返回值

返回一个新的张量,包含输入张量中每个元素的倒数。

示例用法

基本用法
复制代码
import torch

# 创建张量
x = torch.tensor([1.0, 2.0, 0.5, -1.0])

# 计算倒数
y = torch.reciprocal(x)

print(y)
# 输出: tensor([ 1.0000,  0.5000,  2.0000, -1.0000])

处理包含零的张量

复制代码
x = torch.tensor([1.0, 0.0, -2.0])

y = torch.reciprocal(x)

print(y)
# 输出: tensor([ 1.0000,    inf, -0.5000])
# 会产生一个警告: Division by zero encountered.

使用 out 参数

复制代码
x = torch.tensor([2.0, 4.0])
out = torch.empty_like(x)

torch.reciprocal(x, out=out)
print(out)
# 输出: tensor([0.5000, 0.2500])

注意事项

  1. 零值处理:

    • 当输入张量的某些元素为零时,会产生无穷大 (∞∞),并触发警告。
    • 如果需要处理零值,可以在计算前筛选或替换零值,例如使用 torch.where。

    x = torch.tensor([1.0, 0.0, 2.0])
    x_safe = torch.where(x == 0, torch.tensor(float('nan')), x)
    y = torch.reciprocal(x_safe)
    print(y)

    输出: tensor([1.0000, nan, 0.5000])

整数类型的输入:

  • 如果输入张量是整数类型,计算结果会自动转换为浮点类型。

    x = torch.tensor([2, 4, 8])
    y = torch.reciprocal(x)
    print(y)

    输出: tensor([0.5000, 0.2500, 0.1250])

常见应用场景

  • 规范化操作: 用于计算归一化时的一部分操作。
  • 数学运算: 计算反函数或求倒数的应用。
  • 模型权重更新: 在优化算法中可能需要计算反比值。

torch.reciprocal 是 PyTorch 中一个简单但常用的工具函数,适用于多种场景,尤其是在需要逐元素倒数计算时。

相关推荐
电子元件小说家1 小时前
2026年四季度电感市场观察:AI算力与汽车电子驱动下的选型与验证建议智能硬件
人工智能·汽车
网易CodeWave-小码哥1 小时前
支持多模块 Java 微服务导入|CodeWave SDD V4.5.10 上线
人工智能
AI你一生一世1 小时前
不止于时序存储:DolphinDB 如何成为 AI 时代的工业智能底座
java·人工智能·struts·时序数据库·工业智能·dolphindb·ai基础设施
belldeep1 小时前
python:genesis-world, Genesis-Embodied-AI
人工智能·python·ai·genesis
怕浪猫1 小时前
小程序成长计划上新:10 亿 Token 现在能调 DeepSeek-v4.1-flash了
人工智能·aigc·ai编程
ss2732 小时前
为什么PostgreSQL适合AI场景?
数据库·人工智能·postgresql
benchmark_cc2 小时前
A 股、港股、美股如何建立统一的标的主数据格式?
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
七牛云行业应用3 小时前
DeepSeek Super-agent 与 Grok Bot:开源 Agent 架构和聊天助手有何区别
人工智能·ai·架构·ai编程
维克兜率天3 小时前
【维克】趋势型CTA:期货市场的“追涨杀跌“
人工智能·python
u1301303 小时前
GitHub 热榜项目:日榜(2026-11-03)
人工智能·github