tensorflow/tfjs


A WebGL accelerated JavaScript library for training and deploying ML models.

https://js.tensorflow.org

License: Apache-2.0

Language: TypeScript

Keywords: deep-learning, deep-neural-network, gpu-acceleration, javascript, machine-learning, neural-network, typescript, webgl


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 four packages:

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 repository.

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 pretrained models on NPM.

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.

Project Statistics

Sourcerank 16
Repository Size 35.2 MB
Stars 11,485
Forks 865
Watchers 331
Open issues 456
Dependencies 14,604
Contributors 194
Tags 217
Created
Last updated
Last pushed

Top Contributors See all

Nikhil Thorat Daniel Smilkov Shanqing Cai Ping Yu Nick Kreeger Ann Yuan Yannick Assogba kangyizhang Manraj Singh David Soergel Kai Sasaki Stanley Bileschi ericdnielsen Josh Gartman syt123450 dependabot[bot] James Wexler Сковорода Никита Андреевич Kai Ninomiya David Sanders

Packages Referencing this Repo

@tensorflow/tfjs
An open-source machine learning framework.
Latest release 1.2.9 - Updated - 11.5K stars
@latentspacelabs/tfjs-1.2.7-patch
An open-source machine learning framework.
Latest release 1.2.7 - Published - 11.5K stars
tensorflow-sushant
An open-source machine learning framework.
Latest release 1.1.2 - Published - 11.5K stars
@latentspacelabs/tfjs
An open-source machine learning framework.
Latest release 1.2.7-patch-1 - Updated - 11.5K stars
syiintensorflow
An open-source machine learning framework.
Latest release 0.13.0 - Updated - 11.5K stars

Recent Tags See all

tfjs-v1.2.9 September 05, 2019
tfjs-layers-v1.2.9 September 05, 2019
tfjs-data-v1.2.9 September 05, 2019
tfjs-converter-v1.2.9 September 05, 2019
tfjs-core-v1.2.9 September 05, 2019
tfjs-react-native-v0.1.0-alpha.2 September 03, 2019
tfjs-automl-v0.0.1-alpha.0 August 30, 2019
tfjs-node-v1.2.8 August 23, 2019
tfjs-vis-v1.1.0 August 22, 2019
tfjs-node-v1.2.7 August 22, 2019
tfjs-v1.2.8 August 22, 2019
tfjs-layers-v1.2.8 August 20, 2019
tfjs-data-v1.2.8 August 20, 2019
tfjs-converter-v1.2.8 August 20, 2019
tfjs-core-v1.2.8 August 14, 2019

Interesting Forks See all

DalavanCloud/tfjs
A WebGL accelerated JavaScript library for training and deploying ML models.
TypeScript - Apache-2.0 - Updated - 1 stars

Something wrong with this page? Make a suggestion

Last synced: 2019-08-22 14:48:52 UTC

Login to resync this repository