| import torch |
|
|
| |
| def normalize_to_neg_one_to_one(img): |
| return img * 2 - 1 |
|
|
| def unnormalize_to_zero_to_one(t): |
| return (t + 1) * 0.5 |
|
|
|
|
| def normalize_min_max(t, min_val, max_val, a, b, identity=False): |
| ''' |
| Normalize t to [a, b] range |
| Args: |
| t: input tensor |
| min_val: minimum value of t |
| max_val: maximum value of t |
| a: minimum value of the output range |
| b: maximum value of the output range |
| ''' |
| if identity: |
| return t |
| else: |
| return (b - a) * (t - min_val)/(max_val - min_val) + a |
|
|
| def unnormalize_min_max(t, min_val, max_val, a, b, identity=False): |
| ''' |
| Unnormalize t from [a, b] range back to [min_val, max_val] range |
| Args: |
| t: input tensor |
| min_val: minimum value of t |
| max_val: maximum value of t |
| a: minimum value of the input range |
| b: maximum value of the input range |
| ''' |
| if identity: |
| return t |
| else: |
| return (t - a) * (max_val - min_val)/(b - a) + min_val |
|
|
|
|
| def normalize_sqrt(traj_data, a, b): |
| ''' |
| Normalize input tensor to [-1, 1] using square root. |
| @param traj_data: [*, 2] |
| @param a: [2] |
| @param b: [2] |
| ''' |
| traj_data = torch.abs(traj_data).sqrt() * torch.sign(traj_data) |
| traj_data = traj_data / a.reshape(*([1] * (traj_data.dim() - 1)), -1) + b.reshape(*([1] * (traj_data.dim() - 1)), -1) |
| return traj_data |
|
|
| def unnormalize_sqrt(traj_data, a, b): |
| ''' |
| Unnormalize input tensor from [-1, 1] using square root. |
| @param traj_data: [*, 2] |
| @param a: [2] |
| @param b: [2] |
| ''' |
| traj_data = (traj_data - b.reshape(*([1] * (traj_data.dim() - 1)), -1)) * a.reshape(*([1] * (traj_data.dim() - 1)), -1) |
| traj_data = torch.sign(traj_data) * traj_data ** 2 |
| return traj_data |
|
|