Torch tensor 将负数变为零

x=torch.Tensor({1,-1,3,-8})

如何将 x 中所有负数替换为零,而不使用循环,使张量看起来像

th>x 1 0 3 0

点赞
用户3639581
用户3639581

Pytorch 支持使用运算符进行索引。

a = torch.Tensor([1,0,-1])
a[a < 0] = 0
a

结果为:

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

2018-12-28 01:22:52
用户7065156
用户7065156

Pytorch 在这里处理广播:

x = torch.max(x,torch.tensor([0.]))
2020-04-27 15:05:31
用户10886420
用户10886420

实际上,这个操作相当于应用 ReLU 非线性激活函数。

只需要这样做就可以了:

output = torch.nn.functional.relu(a)

您还可以进行就地操作,以进行更快的计算:

torch.nn.functional.relu (a, inplace = True)
2020-04-27 16:04:39