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

PyTorch如何对张量中完整向量执行去重获取唯一向量

PyTorch 对张量内整向量维度去重的实现方法

torch.unique 本身就支持按指定维度对整段向量做去重,你之前使用时没有传入维度参数,接口才会默认将张量展平为一维,对单个元素做去重处理。只要指定dim参数即可实现你需要的按行去重效果。

针对你给出的示例,直接运行以下代码即可得到目标输出:

import torch

T1 = torch.tensor([[1., 0., 1.],
    [0., 1., 0.],
    [1., 0., 1.]])

# dim=0 表示沿第0维度(行方向),对整行向量做去重
# sorted=False 表示保留向量第一次出现的原始顺序,不对结果做值排序
unique_T = torch.unique(T1, dim=0, sorted=False)
print(unique_T)

运行输出:

tensor([[1., 0., 1.],
        [0., 1., 0.]])

参数补充说明

  • 如果需要按列对整列向量去重,将dim参数改为dim=1即可。
  • 若不设置sorted=False,返回的唯一向量会按数值从小到大排序,对应本示例会先返回[0., 1., 0.]再返回[1., 0., 1.],可根据实际需求选择是否开启排序。
  • 如果你使用的PyTorch版本低于1.10,没有sorted参数,可以通过return_index拿到每个唯一向量首次出现的索引,手动还原原始顺序:
unique_vals, first_indices = torch.unique(T1, dim=0, return_index=True)
# 按首次出现的索引排序,还原原始顺序
unique_T = unique_vals[first_indices.sort().values]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.18 16:15:45