How can I put the values of two tensor on the same scale?

Hi, I have two tensors the range value of the first tensor is between 5 to 18 and the other tensor is 0.02 to 0.07. How can I change the scale value of the first tensor like the second tensor?

You could normalize the data first and then shift and scale it to the desired range:

x = torch.empty(1000).uniform_(5, 12)

y = (x - 5) / (12 - 5) # normalize to [0, 1]
print(y.min(), y.max())
> tensor(0.0026) tensor(1.0000)

y = (y  * (0.07 - 0.02)) + 0.02 # scale to [0.02, 0.07]
print(y.min(), y.max())
> tensor(0.0201) tensor(0.0700)
1 Like

Hi ptrblck, thanks for your reply. Actually, I am using a knowledge distillation code where the teacher is Alexnet and the student is a simple network than Alexnet. when I print the last encoding vector of both networks I see a different range of values like 5 to 18 for the teacher and 0.02 to 0.07 for the student network. It makes a problem in my analysis. I confused!