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
这是什么?一个开源的、硬件加速的 JavaScript 库,用于在浏览器和 Node.js 中训练和部署机器学习模型。
它是要加进我自己代码里的库,还是单独运行的工具?一套供你编写代码调用的 JavaScript 包:低层级的 Core API、类似 Keras 的 Layers API、Data API、SavedModel 转换器、浏览器内的 Vis 可视化工具,以及 AutoML 加载器。
我怎么把它加到网页项目里?既可以在 HTML 文件里加一个 script 标签然后在浏览器中打开,也可以用 yarn/npm 从 NPM 安装,再用 Parcel、WebPack 或 Rollup 这类工具打包。
在老版本浏览器里能运行吗?NPM 方式依赖 import 等 ES2017 语法,所以需要现代浏览器,或者用打包器/转译器来兼容老浏览器。
它只能在浏览器里用吗?它也可以通过 TensorFlow C++ 适配器在 Node.js 下运行,还可以通过 expo-gl 适配器在 React Native 应用中运行。
如果我在浏览器里用用户数据训练模型,数据会离开设备吗?它在客户端运行:README 强调可以用连接到浏览器的传感器数据或其他客户端数据重新训练模型,所以数据始终留在用户手里。
我在 TensorFlow 或 Keras 里已经训练好的模型能用吗?可以。TensorFlow.js Converter 工具能导入来自 TensorFlow SavedModel 和 Keras 的预训练模型,让你直接在浏览器里运行现成模型,无需从头重写。
有没有现成的模型可以直接拿来用?有。配套的 models 仓库托管了发布在 NPM 上的预训练 TensorFlow.js 模型,安装后可以直接放进项目里用。
我能看到模型在浏览器里做了什么吗?可以——TensorFlow.js Vis 包为 TensorFlow.js 模型提供浏览器内的可视化功能。
我怎么查看模型在我的设备上跑得多快?仓库自带一个本地基准测试网页工具,可以在你的设备上收集模型和内核在 CPU、WebGL 或 WASM 后端下的速度和内存指标,另外还有一个针对远程设备的多设备工具。
Creator
tensorflow
Size
170.2 MB
Stars
19.1K
Age
8y
Commits · 90 Days