PyTorch中张量的极小极大归一化

2024-04-20 07:59:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我想对PyTorch中的张量执行最小-最大归一化

获得最小-最大归一化的公式为

enter image description here

我想使用一些new_minnew_max对张量执行最小-最大规格化,而不迭代张量的所有元素

>>>import torch
>>>x = torch.randn(5, 4)
>>>print(x)
tensor([[-0.8785, -1.6898,  2.2129, -0.8375],
        [ 1.2927, -1.3187, -0.7087, -2.1143],
        [-0.6162,  0.6836, -1.3342, -0.7889],
        [-0.2934, -1.2526, -0.3265,  1.1933],
        [ 1.2494, -1.2130,  1.5959,  1.4232]])

有没有办法将两个值之间的给定张量new_min, new_max进行最小-最大规格化

假设我想将张量从new_min = -0.25缩放到new_max = 0.25


Tags: import元素newtorchpytorchminmax公式
1条回答
网友
1楼 · 发布于 2024-04-20 07:59:19

v_minv_maxnew_minnew_max定义为:

>>> v_min, v_max = v.min(), v.max()
>>> new_min, new_max = -.25, .25

您可以按以下方式应用公式元素:

>>> v_p = (v - v_min)/(v_max - v_min)*(new_max - new_min) + new_min
tensor([[-0.1072, -0.2009,  0.2500, -0.1025],
        [ 0.1437, -0.1581, -0.0876, -0.2500],
        [-0.0769,  0.0733, -0.1599, -0.0969],
        [-0.0396, -0.1504, -0.0434,  0.1322],
        [ 0.1387, -0.1459,  0.1787,  0.1588]])

然后检查v_p统计信息:

>>> v_p.min(), v_p.max()
(tensor(-0.2500), tensor(0.2500))

相关问题 更多 >