Я использую сеть VGG-16, доступную в pytorch из коробки, чтобы предсказать некоторый индекс изображения.Я обнаружил, что для одного и того же входного файла, если я предсказываю несколько раз, я получаю другой результат.Это кажется мне нелогичным.После прогнозирования весов (поскольку я использую предварительно обученную модель) не должно быть никакой случайности на любом шаге, и, следовательно, многократный прогон с одним и тем же входным файлом должен возвращать одно и то же предсказание.
Вот мой код:
import torch
import torchvision.models as models
VGG16 = models.vgg16(pretrained=True)
def VGG16_predict(img_path):
transformer = transforms.Compose([transforms.CenterCrop(224),transforms.ToTensor()])
data = transformer(Image.open(img_path))
output = softmax(VGG16(data.unsqueeze(0)), dim=1).argmax().item()
return output # predicted class index
VGG16_predict(image)
Вот изображение