22import shutil
33import warnings
44from itertools import compress
5+
56import numpy as np
67from tqdm import tqdm
8+
79from .calculations import calculate_kmeans , calculate_pca , get_embeddings
10+ from .logger import error , info
811from .utils import (
912 create_dir ,
1013 create_image_grid ,
1114 read_images_from_directory ,
1215 read_with_pil ,
1316)
14- from .logger import info , error
1517
1618warnings .filterwarnings ("ignore" )
1719
@@ -52,15 +54,19 @@ def calculate(self, pca=True, iter=10):
5254 """
5355
5456 if not self .images :
55- raise ValueError ("The images list can not be empty. Please call the read method before calculating." )
57+ raise ValueError (
58+ "The images list can not be empty. Please call the read method before calculating."
59+ )
5660
5761 self .embeddings = get_embeddings (use_gpu = self .use_gpu , images = self .images )
5862 if pca :
5963 self .pca_embeddings = calculate_pca (self .embeddings , self .pca_dim )
60- self .centroid , self .labels , self .counts = calculate_kmeans (self .pca_embeddings , self .num_classes , iter = iter )
64+ self .centroid , self .labels , self .counts = calculate_kmeans (
65+ self .pca_embeddings , self .num_classes , iter = iter
66+ )
6167 else :
6268 self .centroid , self .labels , self .counts = calculate_kmeans (
63- self .embeddings , self .num_classes , iter = iter
69+ self .embeddings , self .num_classes , iter = iter
6470 )
6571
6672 def export (self , output_folder = "./" ):
@@ -76,7 +82,6 @@ def export(self, output_folder="./"):
7682 create_dir (project_path )
7783
7884 for label_number in tqdm (range (self .num_classes )):
79-
8085 label_mask = self .labels == label_number
8186 path_images = list (compress (self .image_paths , label_mask ))
8287 target_directory = os .path .join (project_path , f"cluster_{ label_number } " )
@@ -106,8 +111,12 @@ def export_embeddings(self, output_folder="./"):
106111 """
107112
108113 if self .embeddings is None :
109- raise ValueError ("Embeddings can not be empty. Please call the calculate method first." )
114+ raise ValueError (
115+ "Embeddings can not be empty. Please call the calculate method first."
116+ )
110117
111- embeddings_path = os .path .join (output_folder , f"{ self .project_name } _embeddings.npy" )
118+ embeddings_path = os .path .join (
119+ output_folder , f"{ self .project_name } _embeddings.npy"
120+ )
112121 np .save (embeddings_path , self .embeddings )
113122 info (f"Embeddings have been saved to { embeddings_path } " )
0 commit comments