tfjs README

The project's README from github.com/tensorflow/tfjs. As one markdown file: README.md.

TensorFlow.js

TensorFlow.js is an open-source hardware-accelerated JavaScript library for training and deploying machine learning models.

Develop ML in the Browser
Use flexible and intuitive APIs to build models from scratch using the low-level JavaScript linear algebra library or the high-level layers API.

Develop ML in Node.js
Execute native TensorFlow with the same TensorFlow.js API under the Node.js runtime.

Run Existing models
Use TensorFlow.js model converters to run pre-existing TensorFlow models right in the browser.

Retrain Existing models
Retrain pre-existing ML models using sensor data connected to the browser or other client-side data.

About this repo

This repository contains the logic and scripts that combine several packages.

APIs:

Backends/Platforms:

If you care about bundle size, you can import those packages individually.

If you are looking for Node.js support, check out the TensorFlow.js Node directory.

Examples

Check out our examples repository and our tutorials.

Be sure to check out the gallery of all projects related to TensorFlow.js.

Pre-trained models

Be sure to also check out our models repository where we host pre-trained models on NPM.

Benchmarks

Getting started

There are two main ways to get TensorFlow.js in your JavaScript project: via script tags or by installing it from NPM and using a build tool like Parcel, WebPack, or Rollup.

via Script Tag

Add the following code to an HTML file:

<html>
  <head>
    <!-- Load TensorFlow.js -->
    <script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs/dist/tf.min.js"> </script>


    <!-- Place your code in the script tag below. You can also use an external .js file -->
    <script>
      // Notice there is no 'import' statement. 'tf' is available on the index-page
      // because of the script tag above.

      // Define a model for linear regression.
      const model = tf.sequential();
      model.add(tf.layers.dense({units: 1, inputShape: [1]}));

      // Prepare the model for training: Specify the loss and the optimizer.
      model.compile({loss: 'meanSquaredError', optimizer: 'sgd'});

      // Generate some synthetic data for training.
      const xs = tf.tensor2d([1, 2, 3, 4], [4, 1]);
      const ys = tf.tensor2d([1, 3, 5, 7], [4, 1]);

      // Train the model using the data.
      model.fit(xs, ys).then(() => {
        // Use the model to do inference on a data point the model hasn't seen before:
        // Open the browser devtools to see the output
        model.predict(tf.tensor2d([5], [1, 1])).print();
      });
    </script>
  </head>

  <body>
  </body>
</html>

Open up that HTML file in your browser, and the code should run!

via NPM

Add TensorFlow.js to your project using yarn or npm. Note: Because we use ES2017 syntax (such as import), this workflow assumes you are using a modern browser or a bundler/transpiler to convert your code to something older browsers understand. See our examples to see how we use Parcel to build our code. However, you are free to use any build tool that you prefer.

import * as tf from '@tensorflow/tfjs';

// Define a model for linear regression.
const model = tf.sequential();
model.add(tf.layers.dense({units: 1, inputShape: [1]}));

// Prepare the model for training: Specify the loss and the optimizer.
model.compile({loss: 'meanSquaredError', optimizer: 'sgd'});

// Generate some synthetic data for training.
const xs = tf.tensor2d([1, 2, 3, 4], [4, 1]);
const ys = tf.tensor2d([1, 3, 5, 7], [4, 1]);

// Train the model using the data.
model.fit(xs, ys).then(() => {
  // Use the model to do inference on a data point the model hasn't seen before:
  model.predict(tf.tensor2d([5], [1, 1])).print();
});

See our tutorials, examples and documentation for more details.

Importing pre-trained models

We support porting pre-trained models from:

Various ops supported in different backends

Please refer below :

Find out more

TensorFlow.js is a part of the TensorFlow ecosystem. For more info:

Thanks, BrowserStack, for providing testing support.

tfjs (tensorflow/tfjs)

Searching Database…

19.1K ·GitHub
What is this?An open-source, hardware-accelerated JavaScript library for training and deploying machine learning models in the browser and in Node.js.
Is it a library I add to my own code, or a tool I run on its own?A set of JavaScript packages you code against: a low-level Core API, a Keras-like Layers API, a Data API, a SavedModel Converter, an in-browser Vis tool and AutoML loaders.
How do I add it to a web project?Either add a script tag to an HTML file and open it in the browser, or install from NPM with yarn/npm and bundle with a tool like Parcel, WebPack or Rollup.
Will it run in older browsers?The NPM workflow relies on ES2017 syntax like import, so you need a modern browser or a bundler/transpiler to support older ones.
Does it only work in the browser?It also runs under Node.js via a TensorFlow C++ adapter, and in React Native apps via an expo-gl adapter.
If I train a model on user data in the browser, does that data leave the device?It runs client-side: the README emphasizes retraining models from sensor data connected to the browser or other client-side data, so the data stays with the user.
Can I use a model I already trained in TensorFlow or Keras?Yes. The TensorFlow.js Converter tools import pre-trained models from TensorFlow SavedModel and Keras, so you can run existing models in the browser without rebuilding them from scratch.
Are there ready-made models I can just plug in?Yes. A companion models repository hosts pre-trained TensorFlow.js models published on NPM, which you can install and drop straight into a project.
Can I visualize what a model is doing in the browser?Yes — the TensorFlow.js Vis package provides in-browser visualization for TensorFlow.js models.
How do I check how fast my model runs on my device?The repo ships a local benchmark webpage tool that collects speed and memory metrics for models and kernels on your device across the CPU, WebGL or WASM backends, plus a multi-device tool for remote devices.
Creator
tensorflow
Size
170.2 MB
Stars
19.1K
Age
8y
Commits · 90 Days