[英]How do I clamp the magnitude of a PyTorch tensor?
我知道我可以使用torch.clamp
將張量的值限制在某個最小值/最大值內,但是如果我想按幅度(絕對值)限制,我該怎么做? 例子:
import torch
t = torch.tensor([-5.0, -250, -1, 0.003, 7, 1238])
min_mag = 1 / 10
max_mag = 100
# desired output:
tensor([ -5.0000, -100.0000, -1.0000, 0.1000, 7.0000, 100.0000])
這是一種方法:
sign = t.sign()
t = t.abs_().clamp_(min_mag, max_mag)
t *= sign
(注意:這是使用就地操作)
一種方法是將元素的符號乘以絕對元素的鉗位版本,如下所示:
output = torch.sign(t) * torch.clamp(torch.abs(t), min_mag, max_mag)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.