Skip to content
A WebGL accelerated JavaScript library for training and deploying ML models.
TypeScript JavaScript Python C++ HTML Shell Other
Branch: master
Clone or download

Latest commit

Latest commit 81b390d Jun 6, 2020

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.tslint add .tslint (#1477) Jul 22, 2019
.vscode Adding support for Control flow v2 in converter and executor (#3346) May 28, 2020
e2e Fix issue with control flow v2 nested loop (#3380) Jun 3, 2020
scripts Upgrade Emscripten and add correctness test to benchmarks UI. (#3342) Jun 1, 2020
tfjs-automl Update packages to compile to ESM modules by default (#3112) Apr 27, 2020
tfjs-backend-cpu Add docs about backends to tfjs-core readme (#3382) Jun 3, 2020
tfjs-backend-nodegl update devDependencies (#3245) May 19, 2020
tfjs-backend-wasm [wasm] Upgrade XNNPACK and its dependencies. (#3343) Jun 6, 2020
tfjs-backend-webgl Add docs about backends to tfjs-core readme (#3382) Jun 3, 2020
tfjs-backend-webgpu webgpu: Add resnet benchmark in webgpu backend (#3385) Jun 3, 2020
tfjs-converter add stateful while and if ops (#3395) Jun 6, 2020
tfjs-core [wasm] Add where / select. (#3376) Jun 5, 2020
tfjs-data fix test-snippets invocation (#3268) May 13, 2020
tfjs-layers Improve docs for initialEpochs (#2856) Jun 4, 2020
tfjs-node-gpu Fix node and nodegpu build. (#3248) May 12, 2020
tfjs-node add back arm support (#3280) May 18, 2020
tfjs-react-native tfjs-react-native update test app deps (#3367) Jun 1, 2020
tfjs-vis Update packages to compile to ESM modules by default (#3112) Apr 27, 2020
tfjs Start moving integration tests to top level folder. Introduce a tag m… May 21, 2020
.gitignore Support Complex64 weights conversion and loading (#3362) Jun 1, 2020
CONTRIBUTING.md Docs improvement, better label to point out 'Good places to start' (#… Nov 4, 2019
DEVELOPMENT.md Cleanup markdown files after monorepo merge & add tfjs cloudbui… (#1812) Aug 13, 2019
GALLERY.md fixed Typo (#3006) May 29, 2020
ISSUE_TEMPLATE.md Merge tensorflow/tfjs-core into the monorepo. Aug 13, 2019
LICENSE add license file and contributing.md and link to main issues repo (#40) Dec 7, 2018
README.md Update README.md with the link of benchmark and migrate it to e2e (#3358 Jun 1, 2020
WORKSPACE Add a bazel TS build (#1650) Mar 29, 2019
cloudbuild.yml Start moving integration tests to top level folder. Introduce a tag m… May 21, 2020
package.json fix release notes script (#3333) May 27, 2020
pull_request_template.md
tfjs.code-workspace Start moving integration tests to top level folder. Introduce a tag m… May 21, 2020
tsconfig.json Update packages to compile to ESM modules by default (#3112) Apr 27, 2020
tsconfig.test.json Update packages to compile to ESM modules by default (#3112) Apr 27, 2020
tslint.json Bring back the dist importing lint rule (#2039) Sep 13, 2019
yarn.lock fix release notes script (#3333) May 27, 2020

README.md

TensorFlow.js

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

⚠️ We recently released TensorFlow.js 2.0. If you have been using TensorFlow.js via a script tag without specifying a version and see an error saying no backends are found, then you should read our release notes for instructions on how to upgrade.

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.

Gallery

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

Benchmark tool. Use this webpage tool to test the performance related metrics (speed, memory, power, etc) of TensorFlow.js models on your local device with CPU, WebGL or WASM backend.

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:

Find out more

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

Thanks, BrowserStack, for providing testing support.

You can’t perform that action at this time.