Today, I find one strange thing that if I put one or many images into the model, but when check the outputs in different layers of the same images, the values of outputs are different.
- The variable images contains 100 pictures, which have been normalized. Then the resnet18 model made a prediction, and I print the output of last layer. We can see the values of the last picture as follows:
tensor([[ 0.3845428824, -0.5180321932, 0.2798461318,-0.5726045370,0.1901987493, -0.2272544652, -0.8677281737, 0.4837094247,-0.0999206007,-0.1482645720]]) - I only chose the last picture as input, and we can the the output is different from the values above
tensor([[ 0.3845427036, -0.5180319548, 0.2798460722,-0.5726044774,0.1901988089, -0.2272544056, -0.8677282333, 0.4837094545,-0.0999205410,-0.1482645869]]) - I duplicate the last picture 100 times as input, and find the result is the same as result of 1).
[ 0.3845428824, -0.5180321932, 0.2798461318,-0.5726045370,0.1901987493,-0.2272544652,-0.8677281737, 0.4837094247,-0.0999206007,-0.1482645720] - Put the last three pictures into the net, the output is:
[0.3845428526,-0.5180321336,0.2798461318,-0.5726043582,0.1901988238,-0.2272545248,-0.8677282333,0.4837094247,-0.0999206007,-0.1482645124]
It seems that the size of input is he key reason of the output difference. I can’t understand this problem, espicially when I do the same things on tensorflow, there are no difference, in the condition of same batch_size.
Why it happens? Please help me to find out which caused this on pytorch, thank you!