I noticed that I used opencv functions to apply normalization using this code:
subtract(image, Scalar(0.485, 0.456, 0.406), temp);
divide(temp, Scalar(0.229, 0.224, 0.225), image);

This operation changes only the first channel and does not change other channels. For this reason, in fact, input tensor values are different. I applied normalization directly on tensor values writing this code:
	tensor_image = tensor_image.permute({ 2,0,1 });//chw
	tensor_image = tensor_image.toType(torch::kFloat);
	tensor_image = tensor_image.div(255.0);
	//normalize
	tensor_image[0] = tensor_image[0].sub_(0.485).div_(0.229);
	tensor_image[1] = tensor_image[1].sub_(0.456).div_(0.224);
	tensor_image[2] = tensor_image[2].sub_(0.406).div_(0.225);

Thus, I obtained the same input tensor values compared to Python side. After prediction, I obtained the same output tensor values. My problem solved.