簡體   English   中英

如何限制 PyTorch 張量的大小?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM