Hi,
So I have been working on fruits classification problem whose dataset is available on kaggle. It contains 120 classes of different fruits type and has image size of 100x100. I am doing transfer learning by fine-tuning the ResNet-50 model. I split the dataset into train, validation and test sets and after 10 epochs, it has 99.7% validation accuracy and is doing an amazing job of classifying test images as you can see here:
Screen Shot 2020-02-24 at 7.47.49 AM2578×634 374 KB

But when I try testing it on a few images from google, it is just predicting one class. Even when I try to use a random image from test set, it just outputs the same class. My code is here:
loader = transforms.Compose([transforms.Resize(224),
                            transforms.ToTensor(),
                            transforms.Normalize((0.5, 0.5, 0.5), 
                            (0.5, 0.5, 0.5))])
# Since the model inputs images of size 100x100
# need to resize them before feeding them to `loader`
h = 100
w = 100
img_path = test_dir + '/Dates/80_100.jpg'
# img_path = 'avocado.jpg'
img = Image.open(img_path)

img = img.resize((h, w))
img = loader(img)
img = torch.unsqueeze(img, 0)
print(img.shape)
model.eval()
result = model(img)
print(result.shape)
 _, preds_tensor = torch.max(result, 1)
preds = np.squeeze(preds_tensor.numpy()) 
print(class_names[preds])

I even tried the solution discussed here but still getting the same result as above. Any help will be appreciated. Thank you in advance.
Lakshya