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

如何无需循环判断PyTorch张量各列是否存在True?

布尔张量列存在性判断(无for循环实现)

给定形状为 torch.Size([2,4,3]) 的布尔张量,需求是判断每一列(最后一维的每个位置)是否存在至少一个 True,输出结果列表 [0,1,1],且不使用for循环。

实现思路

利用PyTorch内置的聚合函数any(),直接对前两个维度(样本维度和行维度)做存在性判断,再将结果转换为整数列表即可:

  • any(dim=(0, 1)):压缩张量的第0、1维度,对每个列(第2维度的每个索引)判断是否存在True,得到长度为3的布尔张量
  • .int():将布尔值转换为整数(True→1,False→0)
  • .tolist():将张量转换为Python列表

代码示例

import torch

# 定义题目中的张量
x = torch.tensor([[[False,   True,  False],
                   [False,   True,  False],
                   [False,  False,   True],
                   [False,   True,  False]],

                  [[False,   True,  False],
                   [False,  False,   True],
                   [False,  False,   True],
                   [False,  False,   True]]])

# 核心处理逻辑
result = x.any(dim=(0, 1)).int().tolist()

print(result)  # 输出: [0, 1, 1]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 09:12:38