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

如何原地修改PyTorch Tensor的值?按条件(>0设0/<0设1)赋值

解决方案

你可以用PyTorch的torch.where函数一行实现这个需求,这是专门针对张量的条件赋值操作,比遍历高效得多:

import torch

# 原始张量
t = torch.tensor([0.0872, 0.4737, 0.0954])
# 按规则转换
result = torch.where(t > 0, torch.tensor(0), torch.tensor(1))

运行后result就是tensor([0, 0, 0]),如果张量里包含负数,比如t = torch.tensor([0.0872, -0.4737, 0.0954]),转换后会得到tensor([0, 1, 0]),完全匹配你的规则。

补充简化写法

如果你想要更精简的代码,也可以利用布尔张量转长整型的特性:

result = (t < 0).long()

这个写法会把小于0的元素转为1,大于等于0的元素转为0,同样满足你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 20:06:28