@tensorflow-models/knn-classifier
v1.2.1KNN Classifier
This package provides a utility for creating a classifier using the K-Nearest Neighbors algorithm.
This package is different from the other packages in this repository in that it doesn't provide a model with weights, but rather a utility for constructing a KNN model using activations from another model or any other tensors you can associate with a class/label.
You can see example code here.
Usage example
via Script Tag
<html>
<head>
<!-- Load TensorFlow.js -->
<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs"></script>
<!-- Load MobileNet -->
<script src="https://cdn.jsdelivr.net/npm/@tensorflow-models/mobilenet"></script>
<!-- Load KNN Classifier -->
<script src="https://cdn.jsdelivr.net/npm/@tensorflow-models/knn-classifier"></script>
</head>
<body>
<img id='class0' src='/images/class0.jpg '/>
<img id='class1' src='/images/class1.jpg '/>
<img id='test' src='/images/test.jpg '/>
</body>
<!-- Place your code in the script tag below. You can also use an external .js file -->
<script>
const init = async function() {
// Create the classifier.
const classifier = knnClassifier.create();
// Load mobilenet.
const mobilenetModule = await mobilenet.load();
// Add MobileNet activations to the model repeatedly for all classes.
const img0 = tf.browser.fromPixels(document.getElementById('class0'));
const logits0 = mobilenetModule.infer(img0, true);
classifier.addExample(logits0, 0);
const img1 = tf.browser.fromPixels(document.getElementById('class1'));
const logits1 = mobilenetModule.infer(img1, true);
classifier.addExample(logits1, 1);
// Make a prediction.
const x = tf.browser.fromPixels(document.getElementById('test'));
const xlogits = mobilenetModule.infer(x, true);
console.log('Predictions:');
const result = await classifier.predictClass(xlogits);
console.log(result);
}
init();
</script>
</html>
via NPM
const tf = require('@tensorflow/tfjs');
const mobilenetModule = require('@tensorflow-models/mobilenet');
const knnClassifier = require('@tensorflow-models/knn-classifier');
// Create the classifier.
const classifier = knnClassifier.create();
// Load mobilenet.
const mobilenet = await mobilenetModule.load();
// Add MobileNet activations to the model repeatedly for all classes.
const img0 = tf.browser.fromPixels(document.getElementById('class0'));
const logits0 = mobilenet.infer(img0, true);
classifier.addExample(logits0, 0);
const img1 = tf.browser.fromPixels(document.getElementById('class1'));
const logits1 = mobilenet.infer(img1, true);
classifier.addExample(logits1, 1);
// Make a prediction.
const x = tf.browser.fromPixels(document.getElementById('test'));
const xlogits = mobilenet.infer(x, true);
console.log('Predictions:');
console.log(classifier.predictClass(xlogits));
API
Creating a classifier
knnClassifier
is the module name, which is automatically included when you use
the