不像那样整洁 np.clip ,但你可以使用 torch.max 和 torch.min :
np.clip
torch.max
torch.min
In [1]: x Out[1]: tensor([[0.9752, 0.5587, 0.0972], [0.9534, 0.2731, 0.6953]])
设置每列的下限和上限
l = torch.tensor([[0.2, 0.3, 0.]]) u = torch.tensor([[0.8, 1., 0.65]])
注意下限 l 和上限 u 是1乘3的张量(具有单一维度的2D)。我们需要这些尺寸 l 和 u 成为 broadcastable 形状的 x 。 现在我们可以剪辑使用了 min 和 max :
l
u
x
min
max
clipped_x = torch.max(torch.min(x, u), l)
结果
tensor([[0.8000, 0.5587, 0.0972], [0.8000, 0.3000, 0.6500]])