https://github.com/tensorflow/tfjs

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

https://github.com/tensorflow/tfjs

Science Score: 36.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    10 of 370 committers (2.7%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.7%) to scientific vocabulary

Keywords

deep-learning deep-neural-network gpu-acceleration javascript machine-learning neural-network typescript wasm web-assembly webgl

Keywords from Contributors

distributed deep-neural-networks jax onnx transformers audio reinforcement-learning pretrained-models packaging hardware-acceleration
Last synced: 6 months ago · JSON representation

Repository

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

Basic Info
  • Host: GitHub
  • Owner: tensorflow
  • License: apache-2.0
  • Language: TypeScript
  • Default Branch: master
  • Homepage: https://js.tensorflow.org
  • Size: 166 MB
Statistics
  • Stars: 18,952
  • Watchers: 324
  • Forks: 1,991
  • Open Issues: 603
  • Releases: 105
Topics
deep-learning deep-neural-network gpu-acceleration javascript machine-learning neural-network typescript wasm web-assembly webgl
Created almost 8 years ago · Last pushed 6 months ago
Metadata Files
Readme Contributing License

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: - TensorFlow.js Core, a flexible low-level API for neural networks and numerical computation. - TensorFlow.js Layers, a high-level API which implements functionality similar to Keras. - TensorFlow.js Data, a simple API to load and prepare data analogous to tf.data. - TensorFlow.js Converter, tools to import a TensorFlow SavedModel to TensorFlow.js - TensorFlow.js Vis, in-browser visualization for TensorFlow.js models - TensorFlow.js AutoML, Set of APIs to load and run models produced by AutoML Edge.

Backends/Platforms: - TensorFlow.js CPU Backend, pure-JS backend for Node.js and the browser. - TensorFlow.js WebGL Backend, WebGL backend for the browser. - TensorFlow.js WASM Backend, WebAssembly backend for the browser. - TensorFlow.js WebGPU, WebGPU backend for the browser. - TensorFlow.js Node, Node.js platform via TensorFlow C++ adapter. - TensorFlow.js React Native, React Native platform via expo-gl adapter.

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

  • Local benchmark tool. Use this webpage tool to collect the performance related metrics (speed, memory, etc) of TensorFlow.js models and kernels on your local device with CPU, WebGL or WASM backends. You can benchmark custom models by following this guide.
  • Multi-device benchmark tool. Use this tool to collect the same performance related metrics on a collection of remote devices.

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 <!-- Load TensorFlow.js -->

<!-- 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>

```

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.

```js 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: - TensorFlow SavedModel - Keras

Various ops supported in different backends

Please refer below : - TFJS Ops Matrix

Find out more

TensorFlow.js is a part of the TensorFlow ecosystem. For more info: - For help from the community, use the tfjs tag on the TensorFlow Forum. - TensorFlow.js Website - Tutorials - API reference - TensorFlow.js Blog

Thanks, BrowserStack, for providing testing support.

Owner

  • Name: tensorflow
  • Login: tensorflow
  • Kind: organization
  • Email: github-admin@tensorflow.org

GitHub Events

Total
  • Create event: 31
  • Release event: 1
  • Issues event: 120
  • Watch event: 567
  • Delete event: 4
  • Member event: 1
  • Issue comment event: 449
  • Push event: 23
  • Pull request review comment event: 2
  • Pull request review event: 50
  • Pull request event: 68
  • Fork event: 89
Last Year
  • Create event: 31
  • Release event: 1
  • Issues event: 120
  • Watch event: 567
  • Delete event: 4
  • Member event: 1
  • Issue comment event: 449
  • Push event: 23
  • Pull request review comment event: 2
  • Pull request review event: 50
  • Pull request event: 68
  • Fork event: 89

Committers

Last synced: 8 months ago

All Time
  • Total Commits: 6,041
  • Total Committers: 370
  • Avg Commits per committer: 16.327
  • Development Distribution Score (DDS): 0.904
Past Year
  • Commits: 21
  • Committers: 7
  • Avg Commits per committer: 3.0
  • Development Distribution Score (DDS): 0.571
Top Committers
Name Email Commits
Nikhil Thorat n****t@g****m 578
Daniel Smilkov d****v@g****m 577
Ping Yu 4****5 530
Shanqing Cai c****s@g****m 436
Matthew Soulanille m****e@g****m 341
dependabot[bot] 4****] 323
Yannick Assogba y****a@g****m 304
Ann Yuan a****n@g****m 291
Na Li l****o@g****m 245
Nick Kreeger n****r@g****m 227
Jiajia Qin j****n@i****m 182
Kangyi Zhang k****g@g****m 157
Linchenn 4****n 119
Xu Xing x****u@i****m 111
Manraj Singh m****r@g****m 107
Kai Sasaki l****e@m****m 91
Hao Yunfei y****o@i****m 90
David Soergel d****v@d****m 88
xhcao x****o@i****m 84
Jing Jin 8****r 72
ahmedsabie a****e@g****m 57
chunnienc 1****c 48
Stanley Bileschi b****i@g****m 40
ericdnielsen e****n@g****m 38
Josh Gartman j****n@g****m 36
Yang Gu y****u@i****m 35
Rajeshwar Reddy T 4****r 30
Piero F Orderique 4****e 25
gaikwadrahul8 1****8 22
Jiajie Hu j****u@i****m 21
and 340 more...

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 892
  • Total pull requests: 457
  • Average time to close issues: over 1 year
  • Average time to close pull requests: about 1 month
  • Total issue authors: 583
  • Total pull request authors: 69
  • Average comments per issue: 5.29
  • Average comments per pull request: 0.69
  • Merged pull requests: 175
  • Bot issues: 0
  • Bot pull requests: 149
Past Year
  • Issues: 118
  • Pull requests: 117
  • Average time to close issues: 15 days
  • Average time to close pull requests: 21 days
  • Issue authors: 90
  • Pull request authors: 23
  • Average comments per issue: 1.44
  • Average comments per pull request: 0.57
  • Merged pull requests: 32
  • Bot issues: 0
  • Bot pull requests: 43
Top Authors
Issue Authors
  • annxingyuan (28)
  • liliquan0118 (26)
  • nsthorat (24)
  • davidsoergel (21)
  • caisq (18)
  • josephrocca (13)
  • nkreeger (12)
  • axinging (12)
  • tafsiri (11)
  • vladmandic (9)
  • mattsoulanille (9)
  • pyu10055 (7)
  • qjia7 (7)
  • Jove125 (7)
  • borodadada (7)
Pull Request Authors
  • dependabot[bot] (149)
  • dbcp1 (59)
  • gaikwadrahul8 (55)
  • mattsoulanille (47)
  • laxmareddyp (12)
  • pyu10055 (9)
  • pforderique (6)
  • Dedongala (5)
  • Linchenn (5)
  • shmishra99 (5)
  • tharvik (5)
  • fengwuyao (4)
  • axinging (4)
  • PLtier (3)
  • NSTiwari (3)
Top Labels
Issue Labels
stat:awaiting response (460) type:bug (345) type:feature (229) stale (197) stat:awaiting tensorflower (173) comp:core (159) type:others (118) stalled (117) type:build/install (104) comp:node.js (92) comp:react-native (61) comp:models (59) comp:converter (56) stat:contributions welcome (49) type:support (47) comp:layers (40) comp:wasm (34) comp:backend-webgl (34) P2 (32) P3 (31) comp:webgpu (28) comp:data (28) type:performance (24) type:docs (17) comp:tfjs-tflite (14) comp:examples (11) api (9) Merge : Status Pending (6) comp:website (6) comp:vis (6)
Pull Request Labels
dependencies (149) javascript (149) INTERNAL (76) cla: yes (6) cla: no (2) type:bug (1)