You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PyTorch中便捷嵌套arange生成两个区间的所有组合?

PyTorch中生成两个区间所有组合的简便方法

你可以用以下两种简便方法实现需求,完全替代嵌套循环的逻辑:

方法一:直接使用torch.cartesian_prod()

这是PyTorch内置的笛卡尔积生成函数,最简洁高效,完全匹配你的需求:

import torch

x = torch.arange(2, 4)
y = torch.arange(0, 3)

result = torch.cartesian_prod(x, y)
print(result)
# 输出:
# tensor([[2, 0],
#         [2, 1],
#         [2, 2],
#         [3, 0],
#         [3, 1],
#         [3, 2]])

该函数支持任意数量的输入张量,区间范围可以灵活调整,无需修改核心逻辑。

方法二:用torch.meshgrid()手动构造

如果需要理解底层逻辑,可以通过网格生成+重塑的方式实现:

import torch

x = torch.arange(2, 4)
y = torch.arange(0, 3)

# 用'ij'索引生成匹配嵌套循环逻辑的网格
x_grid, y_grid = torch.meshgrid(x, y, indexing='ij')
# 展平后拼接成二维张量
result = torch.stack([x_grid.flatten(), y_grid.flatten()], dim=1)
print(result)
# 输出与方法一一致

内容的提问来源于stack exchange,提问作者Monolith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 06:20:47