import torch
from torch.utils.data import DataLoader
from torchvision import datasets, transforms
myTransform = transforms.Compose([
transforms.Resize((160, 160)),
transforms.ToTensor(),
])
image_datasets = datasets.ImageFolder(data_dir, transform=myTransform)
randomIdx = rnd.randint(0, len(image_datasets.imgs)-1)
def get_embeddings(module, input, output):
output = output.detach().cpu().numpy().tolist()
outputs.append(output) #populate the outputs list with the embeddings
outputs = []
from sklearn.decomposition import PCA
from scipy.spatial import distance_matrix
list_embeddings = [item for sublist in outputs for item in sublist]
myPCA = PCA(n_components = int(N_DIMS_95))
components_images = myPCA.fit_transform(list_embeddings)
distanceMatrix = distance_matrix(components_images, components_images)
This is how we create distance matrix of images
How do I find closest images in a distance matrix, for the image index randomIdx
? Similar to this stackoverflow thread but written in python.