Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tensorflow/tfjs
A WebGL accelerated JavaScript library for training and deploying ML models.
https://github.com/tensorflow/tfjs
deep-learning deep-neural-network gpu-acceleration javascript machine-learning neural-network typescript wasm web-assembly webgl
Last synced: 6 days ago
JSON representation
A WebGL accelerated JavaScript library for training and deploying ML models.
- Host: GitHub
- URL: https://github.com/tensorflow/tfjs
- Owner: tensorflow
- License: apache-2.0
- Created: 2018-03-05T05:41:02.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2024-09-26T21:49:07.000Z (about 1 month ago)
- Last Synced: 2024-10-02T17:34:23.569Z (about 1 month ago)
- Topics: deep-learning, deep-neural-network, gpu-acceleration, javascript, machine-learning, neural-network, typescript, wasm, web-assembly, webgl
- Language: TypeScript
- Homepage: https://js.tensorflow.org
- Size: 165 MB
- Stars: 18,381
- Watchers: 328
- Forks: 1,920
- Open Issues: 526
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
- awesome - tfjs - A WebGL accelerated JavaScript library for training and deploying ML models. (TypeScript)
- Starred-Repo - Tensorflow JS
- awesome-nodejs - tfjs - A WebGL accelerated JavaScript library for training and deploying ML models. ![](https://img.shields.io/github/stars/tensorflow/tfjs.svg?style=social&label=Star) (Repository / Machine learning & Neural networks)
- awesome-starred - tfjs - A WebGL accelerated JavaScript library for training and deploying ML models. (TypeScript)
- awesome-github-star - tfjs
- awesome-imgcook - tensorflow/tfjs - A WebGL accelerated JavaScript library for training and deploying ML models. (JavaScript packages for machine learning / Neural networks)
- awesome-list - TensorFlow.js - A WebGL accelerated JavaScript library for training and deploying ML models based on TensorFlow (Deep Learning Framework / High-Level DL APIs)
- awesome-list - tfjs
- StarryDivineSky - tensorflow/tfjs
- awesome-npm - tfjs - TensorFlow JS 版本,官方计划大力支持 (6. 其他 / 6.1 AI)
- awesome-nodejs - tfjs - TensorFlow JS 版本 (Uncategorized / Uncategorized)
- awesome-tensorflow-js - TensorFlow.js - A WebGL accelerated JavaScript library for training and deploying ML models. (Tools / Libraries)
- awesome - tensorflow/tfjs - A WebGL accelerated JavaScript library for training and deploying ML models. (TypeScript)
- awesome - tensorflow/tfjs - A WebGL accelerated JavaScript library for training and deploying ML models. (TypeScript)
- awesome - tensorflow/tfjs - A WebGL accelerated JavaScript library for training and deploying ML models. (TypeScript)
README
# 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](/tfjs-core),
a flexible low-level API for neural networks and numerical computation.
- [TensorFlow.js Layers](/tfjs-layers),
a high-level API which implements functionality similar to
[Keras](https://keras.io/).
- [TensorFlow.js Data](/tfjs-data),
a simple API to load and prepare data analogous to
[tf.data](https://www.tensorflow.org/guide/datasets).
- [TensorFlow.js Converter](/tfjs-converter),
tools to import a TensorFlow SavedModel to TensorFlow.js
- [TensorFlow.js Vis](/tfjs-vis),
in-browser visualization for TensorFlow.js models
- [TensorFlow.js AutoML](/tfjs-automl),
Set of APIs to load and run models produced by
[AutoML Edge](https://cloud.google.com/vision/automl/docs/edge-quickstart).Backends/Platforms:
- [TensorFlow.js CPU Backend](/tfjs-backend-cpu), pure-JS backend for Node.js and the browser.
- [TensorFlow.js WebGL Backend](/tfjs-backend-webgl), WebGL backend for the browser.
- [TensorFlow.js WASM Backend](/tfjs-backend-wasm), WebAssembly backend for the browser.
- [TensorFlow.js WebGPU](/tfjs-backend-webgpu), WebGPU backend for the browser.
- [TensorFlow.js Node](/tfjs-node), Node.js platform via TensorFlow C++ adapter.
- [TensorFlow.js React Native](/tfjs-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](/tfjs-node).
## Examples
Check out our
[examples repository](https://github.com/tensorflow/tfjs-examples)
and our [tutorials](https://js.tensorflow.org/tutorials/).## Gallery
Be sure to check out [the gallery](GALLERY.md) of all projects related to TensorFlow.js.
## Pre-trained models
Be sure to also check out our [models repository](https://github.com/tensorflow/tfjs-models) where we host pre-trained models
on NPM.## Benchmarks
* [Local benchmark tool](https://tfjs-benchmarks.web.app/). 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](https://github.com/tensorflow/tfjs/blob/master/e2e/benchmarks/local-benchmark/README.md).
* [Multi-device benchmark tool](https://github.com/tensorflow/tfjs/tree/master/e2e/benchmarks/browserstack-benchmark/README.md). 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
// 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();
});
```
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](https://www.tensorflow.org/js/tutorials/conversion/import_saved_model)
- [Keras](https://js.tensorflow.org/tutorials/import-keras.html)## Various ops supported in different backends
Please refer below :
- [TFJS Ops Matrix](https://docs.google.com/spreadsheets/d/1D25XtWaBrmUEErbGQB0QmNhH-xtwHo9LDl59w0TbxrI/edit#gid=0)## Find out more
[TensorFlow.js](https://js.tensorflow.org) is a part of the
[TensorFlow](https://www.tensorflow.org) ecosystem. For more info:
- For help from the community, use the `tfjs` tag on the [TensorFlow Forum](https://discuss.tensorflow.org/tag/tfjs).
- [TensorFlow.js Website](https://js.tensorflow.org)
- [Tutorials](https://js.tensorflow.org/tutorials)
- [API reference](https://js.tensorflow.org/api/latest/)
- [TensorFlow.js Blog](https://blog.tensorflow.org/search?label=TensorFlow.js)Thanks, BrowserStack, for providing testing support.