aboutsummaryrefslogtreecommitdiffhomepage
path: root/tensorflow
diff options
context:
space:
mode:
authorGravatar Robin Nabel <rnabel@google.com>2016-09-04 17:20:01 -0800
committerGravatar TensorFlower Gardener <gardener@tensorflow.org>2016-09-04 18:32:53 -0700
commitcce8636a9175948ebf035f034d73c2d4cb2a8baf (patch)
tree68c7da03079abf72d9f4fb123cc9960d271d170a /tensorflow
parentb33f0b79cb05a62834cb9efa3281b87e900a1d5a (diff)
Correct lint errors across TensorBoard.
Change: 132203379
Diffstat (limited to 'tensorflow')
-rw-r--r--tensorflow/tensorboard/components/tf-graph-common/lib/scene/minimap.ts3
-rw-r--r--tensorflow/tensorboard/components/vz-data-summary/vz-data-summary.ts3
-rw-r--r--tensorflow/tensorboard/components/vz-projector/bh_tsne.ts17
-rw-r--r--tensorflow/tensorboard/components/vz-projector/data.ts3
-rw-r--r--tensorflow/tensorboard/components/vz-projector/data_test.ts1
-rw-r--r--tensorflow/tensorboard/components/vz-projector/external.d.ts2
-rw-r--r--tensorflow/tensorboard/components/vz-projector/heap.ts4
-rw-r--r--tensorflow/tensorboard/components/vz-projector/knn.ts2
-rw-r--r--tensorflow/tensorboard/components/vz-projector/label.ts2
-rw-r--r--tensorflow/tensorboard/components/vz-projector/scatter.ts3
-rw-r--r--tensorflow/tensorboard/components/vz-projector/scatterWebGL.ts9
-rw-r--r--tensorflow/tensorboard/components/vz-projector/util.ts2
-rw-r--r--tensorflow/tensorboard/components/vz-projector/vector.ts15
-rw-r--r--tensorflow/tensorboard/components/vz-projector/vz-projector-data-loader.ts25
-rw-r--r--tensorflow/tensorboard/components/vz-projector/vz-projector.ts56
-rw-r--r--tensorflow/tensorboard/components/vz-sorting/sorting.ts24
16 files changed, 89 insertions, 82 deletions
diff --git a/tensorflow/tensorboard/components/tf-graph-common/lib/scene/minimap.ts b/tensorflow/tensorboard/components/tf-graph-common/lib/scene/minimap.ts
index f5217ab876..769984feb4 100644
--- a/tensorflow/tensorboard/components/tf-graph-common/lib/scene/minimap.ts
+++ b/tensorflow/tensorboard/components/tf-graph-common/lib/scene/minimap.ts
@@ -271,7 +271,8 @@ export class Minimap {
let blob = new Blob([svgXml], {type: 'image/svg+xml;charset=utf-8'});
image.src = URL.createObjectURL(blob);
};
- image.src = 'data:image/svg+xml;charset=utf-8,' + encodeURIComponent(svgXml);
+ image.src =
+ 'data:image/svg+xml;charset=utf-8,' + encodeURIComponent(svgXml);
}
/**
diff --git a/tensorflow/tensorboard/components/vz-data-summary/vz-data-summary.ts b/tensorflow/tensorboard/components/vz-data-summary/vz-data-summary.ts
index 7a8c68ee4e..9895f01631 100644
--- a/tensorflow/tensorboard/components/vz-data-summary/vz-data-summary.ts
+++ b/tensorflow/tensorboard/components/vz-data-summary/vz-data-summary.ts
@@ -130,7 +130,8 @@ function getTextColor(hexTripletColor: string) {
color = convertedHex;
} else {
// RGB string is currently not handled.
- console.log(
+ /* tslint:disable:no-console */
+ console.warn(
'WARNING: Could not convert color to hex,' +
'please specify color as name or hex string.');
return 'black';
diff --git a/tensorflow/tensorboard/components/vz-projector/bh_tsne.ts b/tensorflow/tensorboard/components/vz-projector/bh_tsne.ts
index 95c207ec6c..35a8328cd6 100644
--- a/tensorflow/tensorboard/components/vz-projector/bh_tsne.ts
+++ b/tensorflow/tensorboard/components/vz-projector/bh_tsne.ts
@@ -67,10 +67,9 @@ function zerosArray(length: number): number[] {
return result;
}
-
/** Returns the square euclidean distance between two vectors. */
export function dist2(a: number[], b: number[]): number {
- if (a.length != b.length) {
+ if (a.length !== b.length) {
throw new Error('Vectors a and b must be of same length');
}
@@ -105,7 +104,7 @@ function gaussRandom(rng: () => number): number {
let u = 2 * rng() - 1;
let v = 2 * rng() - 1;
let r = u * u + v * v;
- if (r == 0 || r > 1) {
+ if (r === 0 || r > 1) {
return gaussRandom(rng);
}
let c = Math.sqrt(-2 * Math.log(r) / r);
@@ -173,7 +172,7 @@ function nearest2P(
let psum = 0.0;
for (let k = 0; k < neighbors.length; ++k) {
let neighbor = neighbors[k];
- let pij = (i == neighbor.index) ? 0 : Math.exp(-neighbor.dist * beta);
+ let pij = (i === neighbor.index) ? 0 : Math.exp(-neighbor.dist * beta);
pRow[k] = pij;
psum += pij;
}
@@ -273,9 +272,9 @@ export class TSNE {
this.epsilon = opt.epsilon || 10;
this.rng = opt.rng || Math.random;
this.dim = opt.dim;
- if (opt.dim == 2) {
+ if (opt.dim === 2) {
this.dist2 = dist2_2D;
- } else if (opt.dim == 3) {
+ } else if (opt.dim === 3) {
this.dist2 = dist2_3D;
} else {
this.dist2 = dist2;
@@ -376,7 +375,7 @@ export class TSNE {
let annotateTree =
(node: AugmSPNode): {numCells: number, yCell: number[]} => {
let numCells = node.points ? node.points.length : 0;
- if (node.children == null) {
+ if (node.children === null) {
// Update the current node and tell the parent.
node.numCells = numCells;
// TODO(smilkov): yCell should be average across all points.
@@ -388,7 +387,7 @@ export class TSNE {
node.points ? node.points[0].slice() : zerosArray(this.dim);
for (let i = 0; i < node.children.length; ++i) {
let child = node.children[i];
- if (child == null) {
+ if (child === null) {
continue;
}
let result = annotateTree(child as AugmSPNode);
@@ -433,7 +432,7 @@ export class TSNE {
tree.visit((node: AugmSPNode) => {
let squaredDistToCell = this.dist2(pointI, node.yCell);
// Squared distance from point i to cell.
- if (node.children == null ||
+ if (node.children === null ||
(node.rCell / Math.sqrt(squaredDistToCell) < THETA)) {
let qijZ = 1 / (1 + squaredDistToCell);
let dZ = node.numCells * qijZ;
diff --git a/tensorflow/tensorboard/components/vz-projector/data.ts b/tensorflow/tensorboard/components/vz-projector/data.ts
index a9f68fae08..0a3e6155db 100644
--- a/tensorflow/tensorboard/components/vz-projector/data.ts
+++ b/tensorflow/tensorboard/components/vz-projector/data.ts
@@ -20,7 +20,6 @@ import * as scatter from './scatter';
import {shuffle} from './util';
import * as vector from './vector';
-
/**
* A DataSource is our ground truth data. The original parsed data should never
* be modified, only copied out.
@@ -184,7 +183,6 @@ export class DataSet implements scatter.DataSet {
return traces;
}
-
/**
* Computes the centroid, shifts all points to that centroid,
* then makes them all unit norm.
@@ -312,7 +310,6 @@ export class DataSet implements scatter.DataSet {
this.tsne.initDataDist(this.nearest);
}).then(step);
-
});
}
diff --git a/tensorflow/tensorboard/components/vz-projector/data_test.ts b/tensorflow/tensorboard/components/vz-projector/data_test.ts
index 07286f8bcc..28041b1f47 100644
--- a/tensorflow/tensorboard/components/vz-projector/data_test.ts
+++ b/tensorflow/tensorboard/components/vz-projector/data_test.ts
@@ -15,7 +15,6 @@ limitations under the License.
import {DataPoint, DataSet} from './data';
-
/**
* Helper method that makes a list of points given an array of
* trace indexes.
diff --git a/tensorflow/tensorboard/components/vz-projector/external.d.ts b/tensorflow/tensorboard/components/vz-projector/external.d.ts
index de7b960797..ae746c4d95 100644
--- a/tensorflow/tensorboard/components/vz-projector/external.d.ts
+++ b/tensorflow/tensorboard/components/vz-projector/external.d.ts
@@ -37,4 +37,4 @@ interface Weblas {
}
declare let numeric: any;
-declare let weblas: Weblas; \ No newline at end of file
+declare let weblas: Weblas;
diff --git a/tensorflow/tensorboard/components/vz-projector/heap.ts b/tensorflow/tensorboard/components/vz-projector/heap.ts
index 35f178e000..ac3144e649 100644
--- a/tensorflow/tensorboard/components/vz-projector/heap.ts
+++ b/tensorflow/tensorboard/components/vz-projector/heap.ts
@@ -90,7 +90,7 @@ export class MinHeap<T> {
this.arr[right].key < this.arr[largest].key) {
largest = right;
}
- if (largest != pos) {
+ if (largest !== pos) {
this.swap(largest, pos);
this.bubbleDown(largest);
}
@@ -141,6 +141,6 @@ export class KMin<T> {
/** Returns the largest key in the list. */
getLargestKey(): number {
- return this.maxHeap.size() == 0 ? null : -this.maxHeap.peek().key;
+ return this.maxHeap.size() === 0 ? null : -this.maxHeap.peek().key;
}
}
diff --git a/tensorflow/tensorboard/components/vz-projector/knn.ts b/tensorflow/tensorboard/components/vz-projector/knn.ts
index 4d64595a3f..963845e76f 100644
--- a/tensorflow/tensorboard/components/vz-projector/knn.ts
+++ b/tensorflow/tensorboard/components/vz-projector/knn.ts
@@ -212,7 +212,7 @@ export function findKNNofPoint<T>(
let kMin = new KMin<NearestEntry>(k);
let a = accessor(dataPoints[pointIndex]);
for (let i = 0; i < dataPoints.length; ++i) {
- if (i == pointIndex) {
+ if (i === pointIndex) {
continue;
}
let b = accessor(dataPoints[i]);
diff --git a/tensorflow/tensorboard/components/vz-projector/label.ts b/tensorflow/tensorboard/components/vz-projector/label.ts
index 9689ef5869..c041a6c5cb 100644
--- a/tensorflow/tensorboard/components/vz-projector/label.ts
+++ b/tensorflow/tensorboard/components/vz-projector/label.ts
@@ -148,4 +148,4 @@ export class CollisionGrid {
private getCellY(y: number) {
return Math.floor((y - this.bound.loY) / this.cellHeight);
};
-} \ No newline at end of file
+}
diff --git a/tensorflow/tensorboard/components/vz-projector/scatter.ts b/tensorflow/tensorboard/components/vz-projector/scatter.ts
index 392d8085c6..c6c6590272 100644
--- a/tensorflow/tensorboard/components/vz-projector/scatter.ts
+++ b/tensorflow/tensorboard/components/vz-projector/scatter.ts
@@ -21,7 +21,6 @@ export interface Point3D {
/** Original z coordinate. */
z: number;
}
-;
/** The spacial data of points and lines that will be shown in the projector. */
export interface DataSet {
@@ -74,7 +73,7 @@ export interface Scatter {
setMode(mode: Mode): void;
/** Returns the interaction mode. */
getMode(): Mode;
- /** Resets the zoom level to 1.*/
+ /** Resets the zoom level to 1. */
resetZoom(): void;
/**
* Increases/decreases the zoom level.
diff --git a/tensorflow/tensorboard/components/vz-projector/scatterWebGL.ts b/tensorflow/tensorboard/components/vz-projector/scatterWebGL.ts
index f68311b4f9..a4608b571c 100644
--- a/tensorflow/tensorboard/components/vz-projector/scatterWebGL.ts
+++ b/tensorflow/tensorboard/components/vz-projector/scatterWebGL.ts
@@ -740,7 +740,7 @@ export class ScatterWebGL implements Scatter {
}
} else if (
!e.ctrlKey &&
- this.cameraControls.mouseButtons.ORBIT == THREE.MOUSE.RIGHT) {
+ this.cameraControls.mouseButtons.ORBIT === THREE.MOUSE.RIGHT) {
// The user happened to press the ctrl key when the tab was active,
// unpressed the ctrl when the tab was inactive, and now he/she
// is back to the projector tab.
@@ -748,14 +748,13 @@ export class ScatterWebGL implements Scatter {
this.cameraControls.mouseButtons.PAN = THREE.MOUSE.RIGHT;
} else if (
e.ctrlKey &&
- this.cameraControls.mouseButtons.ORBIT == THREE.MOUSE.LEFT) {
+ this.cameraControls.mouseButtons.ORBIT === THREE.MOUSE.LEFT) {
// Similarly to the situation above.
this.cameraControls.mouseButtons.ORBIT = THREE.MOUSE.RIGHT;
this.cameraControls.mouseButtons.PAN = THREE.MOUSE.LEFT;
}
}
-
/** When we stop dragging/zooming, return to normal behavior. */
private onMouseUp(e: any) {
if (this.selecting) {
@@ -793,7 +792,7 @@ export class ScatterWebGL implements Scatter {
} else if (!this.mouseIsDown) {
let lastNearestPoint = this.nearestPoint;
this.setNearestPointToMouse(e);
- if (lastNearestPoint != this.nearestPoint) {
+ if (lastNearestPoint !== this.nearestPoint) {
this.onHoverListeners.forEach(l => l(this.nearestPoint));
}
}
@@ -849,7 +848,7 @@ export class ScatterWebGL implements Scatter {
// Interpret the pixel as an ID.
let id = (pixelBuffer[0] << 16) | (pixelBuffer[1] << 8) | pixelBuffer[2];
this.nearestPoint =
- id != 0xffffff && id < this.dataSet.points.length ? id : null;
+ id !== 0xffffff && id < this.dataSet.points.length ? id : null;
}
/** Returns the squared distance to the mouse for the i-th point. */
diff --git a/tensorflow/tensorboard/components/vz-projector/util.ts b/tensorflow/tensorboard/components/vz-projector/util.ts
index 975f7e122c..5941c4174d 100644
--- a/tensorflow/tensorboard/components/vz-projector/util.ts
+++ b/tensorflow/tensorboard/components/vz-projector/util.ts
@@ -40,4 +40,4 @@ export function assert(condition: boolean, message?: string) {
message = message || 'Assertion failed';
throw new Error(message);
}
-} \ No newline at end of file
+}
diff --git a/tensorflow/tensorboard/components/vz-projector/vector.ts b/tensorflow/tensorboard/components/vz-projector/vector.ts
index edb6e9bdd0..82fef77b7b 100644
--- a/tensorflow/tensorboard/components/vz-projector/vector.ts
+++ b/tensorflow/tensorboard/components/vz-projector/vector.ts
@@ -15,7 +15,6 @@ limitations under the License.
import {assert} from './util';
-
/**
* @fileoverview Useful vector utilities.
*/
@@ -25,7 +24,7 @@ export type Point2D = [number, number];
/** Returns the dot product of two vectors. */
export function dot(a: Vector, b: Vector): number {
- assert(a.length == b.length, 'Vectors a and b must be of same length');
+ assert(a.length === b.length, 'Vectors a and b must be of same length');
let result = 0;
for (let i = 0; i < a.length; ++i) {
result += a[i] * b[i];
@@ -44,7 +43,7 @@ export function sum(a: Vector): number {
/** Returns the sum of two vectors, i.e. a + b */
export function add(a: Vector, b: Vector): Vector {
- assert(a.length == b.length, 'Vectors a and b must be of same length');
+ assert(a.length === b.length, 'Vectors a and b must be of same length');
let result = new Array(a.length);
for (let i = 0; i < a.length; ++i) {
result[i] = a[i] + b[i];
@@ -54,7 +53,7 @@ export function add(a: Vector, b: Vector): Vector {
/** Subtracts vector b from vector a, i.e. returns a - b */
export function sub(a: Vector, b: Vector): Vector {
- assert(a.length == b.length, 'Vectors a and b must be of same length');
+ assert(a.length === b.length, 'Vectors a and b must be of same length');
let result = new Array(a.length);
for (let i = 0; i < a.length; ++i) {
result[i] = a[i] - b[i];
@@ -78,7 +77,7 @@ export function dist(a: Vector, b: Vector): number {
/** Returns the square euclidean distance between two vectors. */
export function dist2(a: Vector, b: Vector): number {
- assert(a.length == b.length, 'Vectors a and b must be of same length');
+ assert(a.length === b.length, 'Vectors a and b must be of same length');
let result = 0;
for (let i = 0; i < a.length; ++i) {
let diff = a[i] - b[i];
@@ -107,7 +106,7 @@ export function dist2_3D(a: Vector, b: Vector): number {
* exit (returns -1) if the distance is >= to the provided limit.
*/
export function dist2WithLimit(a: Vector, b: Vector, limit: number): number {
- assert(a.length == b.length, 'Vectors a and b must be of same length');
+ assert(a.length === b.length, 'Vectors a and b must be of same length');
let result = 0;
for (let i = 0; i < a.length; ++i) {
let diff = a[i] - b[i];
@@ -184,7 +183,7 @@ export type Predicate<T> = (a: T) => boolean;
export function centroid<T>(
dataPoints: T[], predicate: Predicate<T>,
accessor?: (a: T) => Vector): {centroid: Vector, numMatches: number} {
- if (accessor == null) {
+ if (accessor === null) {
accessor = (a: T) => <any>a;
}
assert(dataPoints.length >= 0, '`vectors` must be of length >= 1');
@@ -201,7 +200,7 @@ export function centroid<T>(
centroid[j] += vector[j];
}
}
- if (n == 0) {
+ if (n === 0) {
return {centroid: null, numMatches: 0};
}
for (let j = 0; j < centroid.length; ++j) {
diff --git a/tensorflow/tensorboard/components/vz-projector/vz-projector-data-loader.ts b/tensorflow/tensorboard/components/vz-projector/vz-projector-data-loader.ts
index f44bb6bbe9..6b7515c2dd 100644
--- a/tensorflow/tensorboard/components/vz-projector/vz-projector-data-loader.ts
+++ b/tensorflow/tensorboard/components/vz-projector/vz-projector-data-loader.ts
@@ -17,7 +17,6 @@ import {runAsyncTask, updateMessage} from './async';
import {DataPoint, DataSet, DatasetMetadata, DataSource} from './data';
import {PolymerElement} from './vz-projector-util';
-
/** Prefix added to the http requests when asking the server for data. */
const DATA_URL = 'data';
@@ -145,7 +144,7 @@ class DataLoader extends DataLoaderPolymer {
let names = Object.keys(info.tensors)
.filter(name => {
let shape = info.tensors[name];
- return shape.length == 2 && shape[0] > 1 && shape[1] > 1;
+ return shape.length === 2 && shape[0] > 1 && shape[1] > 1;
})
.sort((a, b) => info.tensors[b][0] - info.tensors[a][0]);
this.tensorNames =
@@ -157,7 +156,7 @@ class DataLoader extends DataLoaderPolymer {
let labelIndex = -1;
this.labelOptions = columnStats.length > 1 ? columnStats.map((stats, i) => {
// Make the default label by the first non-numeric column.
- if (!stats.isNumeric && labelIndex == -1) {
+ if (!stats.isNumeric && labelIndex === -1) {
labelIndex = i;
}
return stats.name;
@@ -169,7 +168,7 @@ class DataLoader extends DataLoaderPolymer {
let standardColorOption: ColorOption[] = [
{name: 'No color map'},
// TODO(smilkov): Implement this.
- //{name: 'Distance of neighbors',
+ // {name: 'Distance of neighbors',
// desc: 'How far is each point from its neighbors'}
];
let metadataColorOption: ColorOption[] =
@@ -185,7 +184,7 @@ class DataLoader extends DataLoaderPolymer {
// Re-order the range.
let newRange = range.map((color, i) => {
let index = (i * 2) % (range.length - 1);
- if (index == 0) {
+ if (index === 0) {
index = range.length - 1;
}
return range[index];
@@ -217,12 +216,12 @@ class DataLoader extends DataLoaderPolymer {
// Demo dataset dropdown
let demoDatasetChanged = (demoDataSet: DemoDataset) => {
- if (demoDataSet == null) {
+ if (demoDataSet === null) {
return;
}
this.dom.selectAll('.file-name').style('display', 'none');
- let separator = demoDataSet.fpath.substr(-3) == 'tsv' ? '\t' : ' ';
+ let separator = demoDataSet.fpath.substr(-3) === 'tsv' ? '\t' : ' ';
fetchDemoData(`${DATA_URL}/${demoDataSet.fpath}`, separator)
.then(points => {
@@ -391,7 +390,7 @@ function parseTensors(content: string, delim = '\t'): Promise<DataPoint[]> {
let lines = content.split('\n');
lines.forEach(line => {
line = line.trim();
- if (line == '') {
+ if (line === '') {
return;
}
let row = line.split(delim);
@@ -403,17 +402,17 @@ function parseTensors(content: string, delim = '\t'): Promise<DataPoint[]> {
projectedPoint: null
};
// If the first label is not a number, take it as the label.
- if (isNaN(row[0] as any) || numDim == row.length - 1) {
+ if (isNaN(row[0] as any) || numDim === row.length - 1) {
dataPoint.metadata['label'] = row[0];
dataPoint.vector = row.slice(1).map(Number);
} else {
dataPoint.vector = row.map(Number);
}
data.push(dataPoint);
- if (numDim == null) {
+ if (numDim === null) {
numDim = dataPoint.vector.length;
}
- if (numDim != dataPoint.vector.length) {
+ if (numDim !== dataPoint.vector.length) {
updateMessage('Parsing failed. Vector dimensions do not match');
throw Error('Parsing failed');
}
@@ -439,10 +438,10 @@ function parseAndMergeMetadata(
content: string, data: DataPoint[]): Promise<ColumnStats[]> {
return runAsyncTask('Parsing metadata...', () => {
let lines = content.split('\n').filter(line => line.trim().length > 0);
- let hasHeader = (lines.length - 1 == data.length);
+ let hasHeader = (lines.length - 1 === data.length);
// Dimension mismatch.
- if (lines.length != data.length && !hasHeader) {
+ if (lines.length !== data.length && !hasHeader) {
throw Error('Dimensions do not match');
}
diff --git a/tensorflow/tensorboard/components/vz-projector/vz-projector.ts b/tensorflow/tensorboard/components/vz-projector/vz-projector.ts
index e69e4a4d87..cf4492d080 100644
--- a/tensorflow/tensorboard/components/vz-projector/vz-projector.ts
+++ b/tensorflow/tensorboard/components/vz-projector/vz-projector.ts
@@ -21,7 +21,6 @@ import * as vector from './vector';
import {ColorOption} from './vz-projector-data-loader';
import {PolymerElement} from './vz-projector-util';
-
/** T-SNE perplexity. Roughly how many neighbors each point influences. */
let perplexity: number = 30;
/** T-SNE learning rate. */
@@ -366,7 +365,7 @@ class Projector extends ProjectorPolymer {
searchButton.on('click', () => {
let mode = this.scatter.getMode();
this.scatter.setMode(mode === Mode.SEARCH ? Mode.HOVER : Mode.SEARCH);
- if (this.scatter.getMode() == Mode.HOVER) {
+ if (this.scatter.getMode() === Mode.HOVER) {
this.selectedPoints = [];
this.selectionWasUpdated();
} else {
@@ -441,8 +440,8 @@ class Projector extends ProjectorPolymer {
let pointHighlightColor = modeIsNight ? POINT_HIGHLIGHT_COLOR_NIGHT :
POINT_HIGHLIGHT_COLOR_DAY;
this.highlightedPoints = pointIndices.map((index, i) => {
- let color = i == 0 ? pointHighlightColor :
- this.dist2color(neighbors[i - 1].dist, minDist);
+ let color = i === 0 ? pointHighlightColor :
+ this.dist2color(neighbors[i - 1].dist, minDist);
return {index: index, color: color};
});
}
@@ -486,18 +485,18 @@ class Projector extends ProjectorPolymer {
if (!selectedPoints.length) {
this.selectedPoints = [];
this.updateNNList([]);
- }
+
// If only one point is selected, we want to get its nearest neighbors
// and change the UI accordingly.
- else if (selectedPoints.length === 1) {
+ } else if (selectedPoints.length === 1) {
let selectedPoint = selectedPoints[0];
this.showTab('inspector');
let neighbors = this.findNeighbors(selectedPoint);
this.selectedPoints = [selectedPoint].concat(neighbors.map(n => n.index));
this.updateNNList(neighbors);
- }
+
// Otherwise, select all points and hide nearest neighbors list.
- else {
+ } else {
this.selectedPoints = selectedPoints as number[];
this.highlightedPoints = [];
this.updateNNList([]);
@@ -512,7 +511,7 @@ class Projector extends ProjectorPolymer {
let x = this.pcaX;
let y = this.pcaY;
let z = this.pcaZ;
- let hasZ = dimension == 3;
+ let hasZ = dimension === 3;
this.scatter.setXAccessor(i => this.points[i].projections['pca-' + x]);
this.scatter.setYAccessor(i => this.points[i].projections['pca-' + y]);
this.scatter.setZAccessor(
@@ -595,23 +594,25 @@ class Projector extends ProjectorPolymer {
let selectedPoint = this.points[this.selectedPoints[0]];
for (let metadataKey in selectedPoint.metadata) {
- let rowElement = document.createElement('div');
- rowElement.className = 'ink-panel-metadata-row vz-projector';
+ if (selectedPoint.hasOwnProperty(metadataKey)) {
+ let rowElement = document.createElement('div');
+ rowElement.className = 'ink-panel-metadata-row vz-projector';
- let keyElement = document.createElement('div');
- keyElement.className = 'ink-panel-metadata-key vz-projector';
- keyElement.textContent = metadataKey;
+ let keyElement = document.createElement('div');
+ keyElement.className = 'ink-panel-metadata-key vz-projector';
+ keyElement.textContent = metadataKey;
- let valueElement = document.createElement('div');
- valueElement.className = 'ink-panel-metadata-value vz-projector';
- valueElement.textContent = '' + selectedPoint.metadata[metadataKey];
+ let valueElement = document.createElement('div');
+ valueElement.className = 'ink-panel-metadata-value vz-projector';
+ valueElement.textContent = '' + selectedPoint.metadata[metadataKey];
- rowElement.appendChild(keyElement);
- rowElement.appendChild(valueElement);
+ rowElement.appendChild(keyElement);
+ rowElement.appendChild(valueElement);
- metadataContainerElement.append(function() {
- return this.appendChild(rowElement);
- });
+ metadataContainerElement.append(function() {
+ return this.appendChild(rowElement);
+ });
+ }
}
display = true;
@@ -632,7 +633,7 @@ class Projector extends ProjectorPolymer {
NN_HIGHLIGHT_COLOR;
};
let favor = (i: number) => {
- return i == 0 || (i < this.highlightedPoints.length ? false : true);
+ return i === 0 || (i < this.highlightedPoints.length ? false : true);
};
this.scatter.highlightPoints(allPoints, stroke, favor);
this.updateIsolateButton();
@@ -668,7 +669,7 @@ class Projector extends ProjectorPolymer {
let nnlist = this.dom.select('.nn-list');
nnlist.html('');
- if (neighbors.length == 0) {
+ if (neighbors.length === 0) {
this.dom.select('#nn-title').text('');
return;
}
@@ -728,7 +729,7 @@ class Projector extends ProjectorPolymer {
if (pattern == null) {
return {numMatches: 0};
}
- if (pattern == '') {
+ if (pattern === '') {
if (this.allCentroid == null) {
this.allCentroid =
vector.centroid(this.points, () => true, accessor).centroid;
@@ -739,7 +740,8 @@ class Projector extends ProjectorPolymer {
let regExp: RegExp;
let predicate: (a: DataPoint) => boolean;
// Check for a regex.
- if (pattern.charAt(0) == '/' && pattern.charAt(pattern.length - 1) == '/') {
+ if (pattern.charAt(0) === '/' &&
+ pattern.charAt(pattern.length - 1) === '/') {
pattern = pattern.slice(1, pattern.length - 1);
try {
regExp = new RegExp(pattern, 'i');
@@ -750,7 +752,7 @@ class Projector extends ProjectorPolymer {
(a: DataPoint) => { return regExp.test('' + a.metadata['label']); };
// else does an exact match
} else {
- predicate = (a: DataPoint) => { return a.metadata['label'] == pattern; };
+ predicate = (a: DataPoint) => { return a.metadata['label'] === pattern; };
}
return vector.centroid(this.points, predicate, accessor);
}
diff --git a/tensorflow/tensorboard/components/vz-sorting/sorting.ts b/tensorflow/tensorboard/components/vz-sorting/sorting.ts
index d80f805f45..c1a656c34b 100644
--- a/tensorflow/tensorboard/components/vz-sorting/sorting.ts
+++ b/tensorflow/tensorboard/components/vz-sorting/sorting.ts
@@ -28,8 +28,12 @@ module VZ.Sorting {
let ai = 0;
let bi = 0;
while (true) {
- if (ai === a.length) return bi === b.length ? 0 : -1;
- if (bi === b.length) return 1;
+ if (ai === a.length) {
+ return bi === b.length ? 0 : -1;
+ }
+ if (bi === b.length) {
+ return 1;
+ }
if (isDigit(a[ai]) && isDigit(b[bi])) {
const ais = ai;
const bis = bi;
@@ -37,12 +41,18 @@ module VZ.Sorting {
bi = consumeNumber(b, bi + 1);
const an = parseFloat(a.slice(ais, ai));
const bn = parseFloat(b.slice(bis, bi));
- if (an < bn) return -1;
- if (an > bn) return 1;
+ if (an < bn) {
+ return -1;
+ }
+ if (an > bn) {
+ return 1;
+ }
continue;
}
if (isBreak(a[ai])) {
- if (!isBreak(b[bi])) return -1;
+ if (!isBreak(b[bi])) {
+ return -1;
+ }
} else if (isBreak(b[bi])) {
return 1;
} else if (a[ai] < b[bi]) {
@@ -80,7 +90,9 @@ module VZ.Sorting {
break;
}
} else if (state === State.EXPONENT) {
- if (!isDigit(s[i])) break;
+ if (!isDigit(s[i])) {
+ break;
+ }
}
}
return i;