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

如何用PyTorch创建各维度范围为0到1的二维点张量?

用PyTorch生成二维网格点张量

你可以通过以下两种简洁的方式实现需求:

方法一:利用torch.meshgrid构建网格

先生成一维间隔张量,再通过网格函数生成二维坐标,最后拼接成目标形状:

import torch

# 生成0到1、步长0.2的一维张量
step_tensor = torch.arange(0, 1, 0.2)

# 生成二维网格矩阵,indexing='xy'对应笛卡尔坐标系
x_grid, y_grid = torch.meshgrid(step_tensor, step_tensor, indexing='xy')

# 将网格展平后按列拼接,得到(25, 2)的张量
result = torch.stack([x_grid.flatten(), y_grid.flatten()], dim=1)

print(result)

输出结果完全匹配预期格式:meshgrid生成的x_grid每行重复一维张量的值,y_grid每列重复一维张量的值,展平后拼接就得到所有坐标组合。

方法二:使用torch.cartesian_prod直接生成笛卡尔积(PyTorch 1.10+)

如果你的PyTorch版本在1.10及以上,直接调用笛卡尔积函数可以一步到位:

import torch

step_tensor = torch.arange(0, 1, 0.2)
# 生成两个一维张量的笛卡尔积,结果即为(25, 2)的坐标张量
result = torch.cartesian_prod(step_tensor, step_tensor)

print(result)

该函数会自动生成所有元素的组合,顺序完全符合需求:先固定第一个维度的取值,遍历第二个维度的所有值,再切换第一个维度的下一个取值,以此类推。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 23:25:07