TensorFlow.js 教程

HTML5 herman 3585浏览 0评论
公告:“业余草”微信公众号提供免费CSDN下载服务(只下Java资源),关注业余草微信公众号,添加作者微信:xttblog,发送下载链接帮助你免费下载!
本博客日IP超过1800,PV 2600 左右,急需赞助商。
极客时间所有课程通过我的二维码购买后返现24元微信红包,请加博主新的微信号:xttblog,之前的微信号好友位已满,备注:返现
所有面试题(java、前端、数据库、springboot等)一网打尽,请关注文末小程序
视频教程免费领

tfjs 是 TensorFlow 推出的一款 web 端的深度学习类库。TensorFlow.js 是一个开源硬件加速的JavaScript库 培训和部署的机器学习模型。自开源到 github 上以后,深受大家的希望。因此我在第一时间上手用了用,本文将分享它的一些教程。

TensorFlow.js 是 Google 发布面向 JavaScript 开发者的机器学习框架。在浏览器上进行机器学习更容易了!TensorFlow 技术结合 Javascript,大幅降低开发者在浏览器发展机器学习的门槛。Google 表示,随着 Javascript 与机器学习技术的发展,在浏览器上已经可以完全进行机器学习的所有工作,包含定义、训练以及运行机器学习模型。

Google 表示,在浏览器中运行机器学习,这意味着不需要安装任何函数库或者驱动程序,只要打开网页,程序就可以运行。另外,TensorFlow.js 支持 WebGL,因此也能使用 GPU 加速运算。

TensorFlow.js 提供三种工作流程,处理各阶段的机器学习模型。

第一、开发者能将以 TensorFlow 或 Keras 预先训练好的模型,转换成 TensorFlow.js 格式,并载入到浏览器中进行推算。

第二、开发者不仅可以载入一个现有的机器学习模型,还能用从使用者浏览器中收集到的图像资料,再训练这个模型,这个技术称为 Image Retraining,Google 表示,PAC- MAN 游戏示例程序就是以这个模式进行,这方法的好处是只要使用少量的资料就能让模型变得更加精准。

当然使用者也能在浏览器中,从头开始建立一个机器学习模型,使用 TensorFlow.js 提供的 API,完全在浏览器中定义、训练以及运行模型,而这些 API 与 Keras 提供的十分相似,使用过的开发者应该可以很快上手。

TensorFlow.js 项目主页:https://js.tensorflow.org/

TensorFlow.js 的核心概念

TensorFlow.js 是一个开源的用于开发机器学习项目的 WebGL-accelerated Java 库。TensorFlow.js 可以为你提供高性能的、易于使用的机器学习构建模块,允许你在浏览器上训练模型,或以推断模式运行预训练的模型。TensorFlow.js 不仅可以提供低级的机器学习构建模块,还可以提供高级的类似 Keras 的 API 来构建神经网络。

TensorFlow.js 的安装非常简单,我们可以直接使用 NMP 或脚本完成构建。它的使用也有非常多的文档与教程,我们只需要掌握一些基本的核心概念就能快速入手这一 JS 库。

TensorFlow.js 中的中心数据单元是张量(tensor):一维或多维数组。一个 Tensor 实例的 shape 属性定义了其数组形状(即,数组的每个维度上有多少个值)。

Tensor 主要构造函数是 tf.tensor 函数:

constshape = [ 2, 3]; // 2 rows, 3 columns
consta = tf.tensor([ 1.0, 2.0, 3.0, 10.0, 20.0, 30.0], shape);
a.print(); // print Tensor values
constb = tf.tensor([[ 1.0, 2.0, 3.0], [ 10.0, 20.0, 30.0]]);
b.print();

Variable 使用一个张量值来初始化。然而,和 Tensor 不一样,它们的值是可变的。你可以用 assign 方法分配一个新的张量到一个已有的变量(variable):

constinitialValues = tf.zeros([ 5]);
constbiases = tf.variable(initialValues); // initialize biases
biases.print(); // output: [0, 0, 0, 0, 0]
constupdatedValues = tf.tensor1d([ 0, 1, 0, 1, 0]);
biases.assign(updatedValues); // update values of biases
biases.print(); // output: [0, 1, 0, 1, 0]

Variable 主要用于在模型训练过程中保存和更新值。

tensorflow/tfjs

tensorFlow.js 是一个开源硬件加速的JavaScript库 培训和部署的机器学习模型。

在浏览器开发毫升:使用灵活、直观的api使用低级从头构建模型 线性代数的 JavaScript 库或高级层 API。

运行现有的模型:使用 tensorFlow.js 模型转换器运行既存 TensorFlow 模型正确 在浏览器中。

培训现有的模型:再培训的ML模型使用传感器数据连接到浏览器,或 其他客户端数据。

基本用法

使用 tensorFlow.js 可以在 web 页面中引入 tensorFlow.js 类库。

<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@latest"></script>
<!-- or -->
<script src="https://unpkg.com/@tensorflow/tfjs@latest"></script>

也可以通过 yarn 进行安装:

yarn add @tensorflow/tfjs

或者使用 npm 进行安装:

npm install @tensorflow/tfjs

下面看一个例子:

import * as tf from '@tensorflow/tfjs';
const a = tf.tensor1d([1, 2, 3]);
const b = tf.scalar(2);
const result = a.add(b); 
result.data().then(data => console.log(data));
// 业余草:www.xttblog.com
console.log(result.dataSync()); 
import * as tf from '@tensorflow/tfjs';
const model = tf.sequential();
model.add(tf.layers.dense({units: 1, inputShape: [1]}));
model.compile({loss: 'meanSquaredError', optimizer: 'sgd'});
const xs = tf.tensor2d([[1], [2], [3], [4]], [4, 1]);
const ys = tf.tensor2d([[1], [3], [5], [7]], [4, 1]);
await model.fit(xs, ys, {epochs: 500});
// 业余草:www.xttblog.com
const output = model.predict(tf.tensor2d([[5]], [1, 1]));
output.print();

更多例子和资料,请移动到官网进行学习!

业余草公众号

最后,欢迎关注我的个人微信公众号:业余草(yyucao)!可加QQ1群:135430763(2000人群已满),QQ2群:454796847(已满),QQ3群:187424846(已满)。QQ群进群密码:xttblog,想加微信群的朋友,之前的微信号好友已满,请加博主新的微信号:xttblog,备注:“xttblog”,添加博主微信拉你进群。备注错误不会同意好友申请。再次感谢您的关注!后续有精彩内容会第一时间发给您!原创文章投稿请发送至532009913@qq.com邮箱。商务合作可添加助理微信进行沟通!

本文原文出处:业余草: » TensorFlow.js 教程