Top 6 Machine Learning Libraries for Javascript

Top 6 Machine Learning Libraries for Javascript

This article provided the initial information on the availability of Machine Learning Libraries for JavaScript.

Usually, people apply machine learning (ML) methods and algorithms using one of two programming languages: Python or R. Books, courses, and tutorials about Machine Learning most often use one of these languages as well (or both).

Python is a general-purpose programming language used not only for Machine Learning but also for scientific computing, back-end Web development, desktop applications, etc. R is created primarily for statisticians. However, they have at least two common characteristics:

  • They are suitable for non-programmers,
  • They have comprehensive ML libraries.
  • In many cases, ML algorithms are implemented in Fortran, C, C++, or Cython and called from Python or R.

Java is also used for Machine Learning, but usually by professional programmers.

During the last few years, JavaScript gained in popularity, and some very interesting Machine Learning libraries appeared enabling implementation of ML methods in browsers or on Node.js. Surprisingly, many of such libraries implement a lot of code in JavaScript itself.

This article presents several ML open-source libraries for JavaScript:

  • ml.js,
  • TensorFlow.js,
  • brain.js,
  • ConvNetJS,
  • WebDNN,
  • natural.


ml.js is a comprehensive, general-purpose JavaScript ML library for browsers and Node.js. It offers the routines for:

  • Bit operations on arrays, hash tables, sorting, random number generation, etc.,
  • Linear algebra, array manipulation, optimization (the Levenberg-Marquardt method), statistics,
  • Cross-validation,
  • Supervised learning,
  • Unsupervised learning.

Supported supervised learning methods are:

  • Linear, polynomial, exponential, and power regression,
  • K-nearest neighbors,
  • Naive Bayes,
  • Support vector machines,
  • Decision trees and random forest,
  • Feedforward neural networks, etc.

Besides, ml.js offers several unsupervised learning methods:

  • Principal component analysis,
  • Cluster analysis (k-means and hierarchical clustering),
  • Self-organizing maps (Kohonen networks).

License: MIT.


TensorFlow is one of the most popular Machine Learning libraries. It focuses on various types and structures of artificial neural networks, including deep networks, as well as the components of the networks. TensorFlow is created by Google Brain Team and written in C++ and Python. However, it can be used with several languages, including JavaScript.

TensorFlow is a very comprehensive library that still enables building and training models easily. It supports a huge variety of network layers, activation functions, optimizers, and other components. It has good performance and offers GPU support.

TensorFlow.js is a JavaScript ML library for use in browsers or on Node.js. It supports WebGL.

License: Apache 2.0.


brain.js is a library written in JavaScript-focused on training and applying feedforward and recurrent neural networks. It also offers additional utilities, such as math routines necessary for neural networks.

It provides advanced options like:

  • Using GPU to train networks
  • Asynchronous training that can fit multiple networks in parallel
  • Cross-validation that is a more sophisticated validation method

brain.js saves and loads models to/from JSON files.

License: MIT.


ConvNetJS is another library for neural networks and deep learning. It enables training neural networks in browsers. In addition to classification and regression problems, it has the reinforcement learning module (using Q-learning) that is still experimental. ConvNetJS provides support for convolutional neural networks that excel in image recognition.

In ConvNetJS, neural networks are lists of layers. It provides the following layers:

  • Input (the first) layer
  • Fully connected layer
  • Convolution layer
  • Pooling layer
  • Local contrast normalization layer
  • Classifiers loss (the output) layers: softmax and svm
  • Regression loss (the output) layer that uses L2

It supports several important activation functions like:

  • ReLU
  • Sigmoid
  • Hyperbolic tangent
  • MaxOut

as well as the optimizers such as:

  • Stochastic gradient descent
  • Adadelta
  • AdagradS
  • ConvNetJS also provides a convenient way to save and load models to/from JSON files.

License: MIT.


WebDNN is a library focused on deep neural networks, including recurrent neural networks with LSTM architecture. It is written in TypeScript and Python and offers JavaScript and Python APIs.

It also provides the possibility of GPU execution in browsers.

A very convenient feature of WebDNN is the possibility to convert and use the models pretrained with PyTorch, TensorFlow, Keras, Caffemodel or Chainer.

License: MIT.


natural is a JavaScript library for natural language processing used with Node.js.

It supports:

  • Tokenization (breaking text into arrays of strings)
  • Calculation of strings distances
  • Matching similar strings
  • Classification (naive Bayes, logistic regression, and maximum entropy)
  • Sentiment analysis (currently in eight languages)
  • Phonetic matching, inflectors, n-grams, etc.

License: MIT.


Both JavaScript and machine learning are gaining much attention and popularity during the last several years. Although initially created to enable dynamic behavior of Web pages, JavaScript becomes one of the languages of choice to implement and apply machine learning methods, especially in browsers or servers (Node.js).

This article provided the initial information on the availability of machine learning libraries for JavaScript.

javascript machine-leanring

Bootstrap 5 Complete Course with Examples

Bootstrap 5 Tutorial - Bootstrap 5 Crash Course for Beginners

Nest.JS Tutorial for Beginners

Hello Vue 3: A First Look at Vue 3 and the Composition API

Building a simple Applications with Vue 3

Deno Crash Course: Explore Deno and Create a full REST API with Deno

How to Build a Real-time Chat App with Deno and WebSockets

Convert HTML to Markdown Online

HTML entity encoder decoder Online

The essential JavaScript concepts that you should understand

The essential JavaScript concepts that you should understand - For successful developing and to pass a work interview

Top 3 JavaScript Machine Learning Libraries

Ranking based on community support and personal experience. It can be argued that Python is the one and only language for Machine Learning. While it is true to a certain extent, it has become difficult to ignore the rising popularity of JavaScript(JS) in this field. After experimenting with a few of those libraries I have decided to publish a list of the most promising and functional machine and deep learning libraries for JavaScript. Top 3 JavaScript Machine Learning Libraries

Building a Powerful Virtual Machine in JavaScript

This JavaScript tutorial explains how to build a powerful Virtual Machine in JavaScript. A flexible, extensible, register-based virtual machine. Support for signed, unsigned and floating point operations. A call stack. Interrupt capabilities. Ability to do memory mapping for IO. An assembly language with macro and module support. A higher level, C like language. We'll use and expand the library from the parser combinators from scratch series. And finally, to be able to take the whole thing into the browser and exend it to create a sort of fantasy console - an emulator for a machine that never existed

Data Types In JavaScript

JavaScript data types are kept easy. While JavaScript data types are mostly similar to other programming languages; some of its data types can be unique. Here, we’ll outline the data types of JavaScript.

JavaScript Memory Management System

The main goal of this article is help to readers to understand that how memory management system performs in JavaScript. I will use a shorthand such as GC which means Garbage Collection. When the browsers use Javascript, they need any memory location to store objects, functions, and all other things. Let’s deep in dive that how things going to work in GC.