From 67ea0cfe734f9128411cfc1f5e3dec303b09650a Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Thu, 29 Aug 2024 12:22:22 +0530 Subject: [PATCH] Debugging code --- .../new/photos/services/ml/cluster-new.ts | 26 ++++++++++--------- .../new/photos/services/ml/cluster.ts | 2 +- 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/web/packages/new/photos/services/ml/cluster-new.ts b/web/packages/new/photos/services/ml/cluster-new.ts index 9e07b2812c..94e5efe11e 100644 --- a/web/packages/new/photos/services/ml/cluster-new.ts +++ b/web/packages/new/photos/services/ml/cluster-new.ts @@ -343,17 +343,18 @@ export const clusterFacesHdb = async (faceIndexes: FaceIndex[]) => { // A flattened array of faces. // TODO-Cluster note the 2k slice - const faces = [...enumerateFaces(faceIndexes)].slice(0, 2000); + const faces0 = [...enumerateFaces(faceIndexes)];//.slice(0, 2000); + const faces = Array(1).fill(0).flatMap(() => faces0); const faceEmbeddings = faces.map(({ embedding }) => embedding); const { clusters: clusterIndices, - noise, - debugInfo, + // noise, + // debugInfo, } = clusterFacesHdbscan(faceEmbeddings); - log.info({ method: "hdbscan", clusterIndices, noise, debugInfo }); + // log.info({ method: "hdbscan", clusterIndices, noise, debugInfo }); log.info( `Clustered ${faces.length} faces into ${clusterIndices.length} clusters (${Date.now() - t} ms)`, ); @@ -387,7 +388,8 @@ export const clusterFacesHdb = async (faceIndexes: FaceIndex[]) => { // Convert into the data structure we're using to debug/visualize. const faceAndNeigbours: FaceNeighbours[] = []; - for (const fi of faces) { + const topFaces = faces.sort((a, b) => b.score - a.score).slice(0, 30); + for (const fi of topFaces) { let neighbours: FaceNeighbour[] = []; for (const fj of faces) { // The vectors are already normalized, so we can directly use their @@ -437,13 +439,13 @@ export const clusterFacesHdb = async (faceIndexes: FaceIndex[]) => { ).faceID; } - log.info("ml/cluster", { - faces, - validClusters, - clusterIndexForClusterID: Object.fromEntries(clusterIndexForClusterID), - clusterIDForFaceID: Object.fromEntries(clusterIDForFaceID), - cgroups, - }); + // log.info("ml/cluster", { + // faces, + // validClusters, + // clusterIndexForClusterID: Object.fromEntries(clusterIndexForClusterID), + // clusterIDForFaceID: Object.fromEntries(clusterIDForFaceID), + // cgroups, + // }); log.info( `Clustered ${faces.length} faces into ${validClusters.length} clusters (${Date.now() - t} ms)`, ); diff --git a/web/packages/new/photos/services/ml/cluster.ts b/web/packages/new/photos/services/ml/cluster.ts index ff62f466a9..53e4930d94 100644 --- a/web/packages/new/photos/services/ml/cluster.ts +++ b/web/packages/new/photos/services/ml/cluster.ts @@ -24,7 +24,7 @@ export const clusterFacesHdbscan = ( minSamples: 5, clusterSelectionEpsilon: 0.6, clusterSelectionMethod: "leaf", - debug: true, + debug: false, }); return {