|
|
@ -86,14 +86,16 @@ elif KIND == "umap": |
|
|
|
reducer = UMAP( |
|
|
|
n_components=1, |
|
|
|
n_neighbors=250, |
|
|
|
min_dist=0.005, |
|
|
|
min_dist=1e-2, |
|
|
|
metric="euclidean", |
|
|
|
random_state=SEED, |
|
|
|
negative_sample_rate=2, |
|
|
|
) |
|
|
|
embedding = reducer.fit_transform(np.array(rgb_values)) |
|
|
|
|
|
|
|
# Sort colors by the 1D representation |
|
|
|
preds = embedding[:, 0] |
|
|
|
del reducer, embedding |
|
|
|
|
|
|
|
elif KIND in ("cielab", "lab", "ciede2000"): |
|
|
|
from skimage.color import deltaE_ciede2000, rgb2lab |
|
|
@ -130,10 +132,11 @@ else: |
|
|
|
sorted_indices = np.argsort(preds) |
|
|
|
|
|
|
|
# Save the sorted indices to disk |
|
|
|
if (KIND == "umap" and SEED == 21) or (KIND != "umap"): |
|
|
|
file_path = f"scripts/{KIND}_sorted_indices.npy" |
|
|
|
np.save(file_path, sorted_indices) |
|
|
|
print(f"Sorted indices saved to {file_path}") |
|
|
|
# if (KIND == "umap") or (KIND != "umap"): |
|
|
|
Path(f"scripts/{KIND}").mkdir(parents=True, exist_ok=True) |
|
|
|
file_path = f"scripts/{KIND}/preds_{SEED:06d}.npy" |
|
|
|
np.save(file_path, preds) |
|
|
|
print(f"Predictions saved to {file_path}") |
|
|
|
|
|
|
|
# Sort colors by the 1D representation |
|
|
|
sorted_colors = [colors[i] for i in sorted_indices] |
|
|
@ -280,18 +283,19 @@ def plot_preds( |
|
|
|
|
|
|
|
prefix = "" |
|
|
|
if KIND == "umap": |
|
|
|
prefix = f"{SEED:02d}" |
|
|
|
prefix = f"{SEED:04d}" |
|
|
|
fname = f"{DIR}/{prefix}{KIND}_sorted_colors_circle.png" |
|
|
|
|
|
|
|
plot_preds( |
|
|
|
preds, |
|
|
|
np.array(rgb_values), |
|
|
|
fname, |
|
|
|
roll=True, |
|
|
|
roll=False, |
|
|
|
dpi=DPI, |
|
|
|
inner_radius=INNER_RADIUS, |
|
|
|
figsize=(SIZE, SIZE), |
|
|
|
) |
|
|
|
print(f"saved {fname}") |
|
|
|
|
|
|
|
HILBERT = False |
|
|
|
|
|
|
|