1
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.

Find indices of 5 closest samples in distance matrix

Ahmed Can Unbay
  • 2,694
  • 2
  • 16
  • 33

0 Answers0