From cb0e3995835f394198a471401348df2d4d753f2b Mon Sep 17 00:00:00 2001 From: Zoey Li <31378877+alicialics@users.noreply.github.com> Date: Tue, 4 Apr 2023 18:16:04 +0000 Subject: [PATCH] Embedding Projector: fix switching projections --- .../vz-projector-projections-panel.ts | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/tensorboard/plugins/projector/vz_projector/vz-projector-projections-panel.ts b/tensorboard/plugins/projector/vz_projector/vz-projector-projections-panel.ts index 3a82a494d1a..010476e951a 100644 --- a/tensorboard/plugins/projector/vz_projector/vz-projector-projections-panel.ts +++ b/tensorboard/plugins/projector/vz_projector/vz-projector-projections-panel.ts @@ -399,7 +399,6 @@ class ProjectionsPanel extends LegacyElementMixin(PolymerElement) { this.searchByMetadataOptions[Math.max(0, searchByMetadataIndex)]; } public showTab(id: ProjectionType) { - this.currentProjection = id; const tab = this.$$('.ink-tab[data-tab="' + id + '"]') as HTMLElement; const allTabs = this.root?.querySelectorAll('.ink-tab'); if (allTabs) { @@ -434,19 +433,23 @@ class ProjectionsPanel extends LegacyElementMixin(PolymerElement) { if (this.polymerChangesTriggerReprojection === false) { return; } - if (projection === 'pca') { + if (this.currentProjection !== projection) { + this.currentProjection = projection; if (this.dataSet != null) { - this.dataSet.stopTSNE(); + if (projection === 'tsne') { + this.dataSet.tSNEShouldPause = false; + } else { + this.dataSet.tSNEShouldPause = true; + } } + } + if (projection === 'pca') { this.showPCA(); } else if (projection === 'tsne') { this.showTSNE(); } else if (projection === 'umap') { this.showUmap(); } else if (projection === 'custom') { - if (this.dataSet != null) { - this.dataSet.stopTSNE(); - } this.computeAllCentroids(); this.reprojectCustom(); } @@ -489,6 +492,7 @@ class ProjectionsPanel extends LegacyElementMixin(PolymerElement) { (iteration: number) => { if (iteration != null) { this.runTsneButton.disabled = false; + this.pauseTsneButton.innerText = 'Pause'; this.pauseTsneButton.disabled = false; this.iterationLabelTsne.innerText = '' + iteration; this.projector.notifyProjectionPositionsUpdated();