【Pytorch学习】torch实现clip_by_tensor操作
1.代码实现
def clip_by_tensor(t, t_min, t_max):
t = t.float()
# 输入tensor的各个元素中,与t_min做比较,若小于t_min矩阵中的值,则输出t_min矩阵中的值,大于则保留。
result = (t >= t_min).float() * t + (t < t_min).float() * t_min
# 输入result的各个元素中,与t_max做比较,若大于t_max矩阵中的值,则输出t_max矩阵中的值,小于则保留。
result = (result <= t_max).float() * result + (result > t_max).float() * t_max
return result
2.作用
按元素操作,使数据在min到max之间,小于min的变为min,大于max的变为max。
3.示列
min_tensor = torch.tensor(([1,2,3],[1,2,3],[1,2,3],[1,2,3]))
max_tensor = torch.tensor(([7,8,9],[7,8,7],[7,8,9],[7,8,9]))
init_tensor = torch.tensor(([0,0,0],[4,5,6],[4,5,6],[10,10,10]))
result = clip_by_tensor(init_tensor,min_tensor,max_tensor)
print(result)
=>tensor([[1., 2., 3.],
[4., 5., 6.],
[4., 5., 6.],
[7., 8., 9.]])
本文介绍了如何使用PyTorch库中的`clip_by_tensor`函数,该函数用于按元素限制输入张量在给定最小值和最大值之间的操作,通过示例展示了其实现和应用。

2万+

被折叠的 条评论
为什么被折叠?



