img = img.transpose((1, 2, 0))

changes original form of PIL image, so img.show() don’t make sense if you want to check the cropped image.
I guess you can check cropped image as follow:
train_transform = transforms.Compose([
     transforms.RandomResizedCrop(224),
     transforms.RandomHorizontalFlip(),
     transforms.ToTensor(),
    ])
 a = SceneData(os.getcwd(), split='train',transform=train_transform)
 img, label = a[0]
 img2 = img
 img = img.numpy().transpose(1,2,0)
 img = Image.fromarray(img, 'RGB')
 img2 = Image.fromarray(img, 'RGB')
 img2.show()