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

如何对PyTorch张量执行reduce操作实现沿指定轴的bitwise_or运算

PyTorch布尔张量按指定维度做bitwise_or reduce的实现方案

方案1:布尔张量场景极简实现

对于布尔类型张量来说,沿指定维度做bitwise_or等价于判断该维度下是否存在至少一个True,直接调用torch.any即可实现,运算效率最高:

import torch

# 构造示例输入:shape为(15,10)的布尔张量
input_tensor = torch.randint(0, 2, size=(15, 10), dtype=torch.bool)
# 沿axis=0维度做bitwise_or,输出shape为(10,)
output = input_tensor.any(dim=0)

方案2:通用场景实现(兼容布尔/整数类型张量)

如果需要对齐numpy的np.bitwise_or.reduce的通用逻辑(同时支持整数、布尔类型张量的按位或规约),可以结合functools.reduce和张量拆维实现:

import torch
import operator
from functools import reduce

# 支持任意输入类型:bool/uint8/int32等均可
input_tensor = torch.randint(0, 255, size=(15, 10), dtype=torch.uint8)
# 沿axis=0维度做bitwise_or规约
output = reduce(operator.or_, input_tensor.unbind(dim=0))

说明:input_tensor.unbind(dim=0)会将输入张量沿第0维拆分为15个shape为(10,)的张量,reduce会逐次对所有拆分后的张量执行按位或操作,最终得到的结果和numpy的reduce接口输出完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 05:15:02