torch实现clip_by_tensor操作

先做个试验

import torch
a=torch.tensor([[1,2,3],[4,5,6]])
b=torch.tensor([[2,1,9],[3,7,5]])
c=(a>=b).float()
c

torch实现clip_by_tensor操作
这里可以看出来是可一找到a>=b的数据,并输出布尔值

def clip_by_tensor(t,t_min,t_max):
    t=t.float()
 
    result = (t >= t_min).float() * t + (t < t_min).float() * t_min
    result = (result <= t_max).float() * result + (result > t_max).float() * t_max
    return result

clip_by_tensor作用是使数据在min到max之间,小于min的变为min,大于max的变为max

import torch
a=torch.ones(3,3)*3
b=torch.ones(3,3)*5
c=torch.tensor([[1,2,3],[4,5,6],[7,8,9]])
def clip_by_tensor(t,t_min,t_max):
    t=t.float()
 
    result = (t >= t_min).float() * t + (t < t_min).float() * t_min
    result = (result <= t_max).float() * result + (result > t_max).float() * t_max
    return result
d=clip_by_tensor(c,a,b)

torch实现clip_by_tensor操作torch实现clip_by_tensor操作

上一篇:MS-CLIP:模式共享的对比语言-图像预训练框架


下一篇:将InputStream转换成某种字符编码的String