pichuang
(Pierce Chuang)
1
Hello,
I am wondering what is the most efficient way to implement per-row/column clamping? For instance,
input = torch.tensor([[0,3,2,-1],[2,1,3,4]])
input_clamp = torch.Tensor([2,3])
output = per_row_clamp(input, input_clamp)
The output then should be [[0,2,2,-1],[2,1,3,3]]
One approach I can think of is to do a per-row division, then clamp everything to 1, then multiply the per-row clamp value back.
Thanks!
otutay
(noname)
2
You can try below code. just do some boolean indexing in the data. After comparator, do the replacement in the data. You will get the idea.
import torch
input = torch.tensor([[0,3,2,-1],[2,1,3,4]],dtype = torch.float)
input_clamp = torch.Tensor([2,3])
tiled = input_clamp.repeat(4,1).t()
bigger = input > tiled
input[bigger] = tiled[bigger]
print(input)```