本博客日IP超过2000,PV 3000 左右,急需赞助商。
极客时间所有课程通过我的二维码购买后返现24元微信红包,请加博主新的微信号:xttblog2,之前的微信号好友位已满,备注:返现
受密码保护的文章请关注“业余草”公众号,回复关键字“0”获得密码
所有面试题(java、前端、数据库、springboot等)一网打尽,请关注文末小程序
腾讯云】1核2G5M轻量应用服务器50元首年,高性价比,助您轻松上云
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)!可加作者微信号:xttblog2。备注:“1”,添加博主微信拉你进微信群。备注错误不会同意好友申请。再次感谢您的关注!后续有精彩内容会第一时间发给您!原创文章投稿请发送至532009913@qq.com邮箱。商务合作也可添加作者微信进行联系!
本文原文出处:业余草: » TensorFlow.js 教程