热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

TensorFlow.js

tfjs是 TensorFlow推出的一款web端的深度学习类库。TensorFlow.js 是一个开源硬件加速的JavaScript库培训和部署的机器学习模型。自开源到githu

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 类库。



也可以通过 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();

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

TensorFlow.js 教程

: » TensorFlow.js 教程


推荐阅读
  • 使用在线工具jsonschema2pojo根据json生成java对象
    本文介绍了使用在线工具jsonschema2pojo根据json生成java对象的方法。通过该工具,用户只需将json字符串复制到输入框中,即可自动将其转换成java对象。该工具还能解析列表式的json数据,并将嵌套在内层的对象也解析出来。本文以请求github的api为例,展示了使用该工具的步骤和效果。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • 本文介绍了在Python张量流中使用make_merged_spec()方法合并设备规格对象的方法和语法,以及参数和返回值的说明,并提供了一个示例代码。 ... [详细]
  • Node.js学习笔记(一)package.json及cnpm
    本文介绍了Node.js中包的概念,以及如何使用包来统一管理具有相互依赖关系的模块。同时还介绍了NPM(Node Package Manager)的基本介绍和使用方法,以及如何通过NPM下载第三方模块。 ... [详细]
  • 开源Keras Faster RCNN模型介绍及代码结构解析
    本文介绍了开源Keras Faster RCNN模型的环境需求和代码结构,包括FasterRCNN源码解析、RPN与classifier定义、data_generators.py文件的功能以及损失计算。同时提供了该模型的开源地址和安装所需的库。 ... [详细]
  • 本文介绍了JavaScript进化到TypeScript的历史和背景,解释了TypeScript相对于JavaScript的优势和特点。作者分享了自己对TypeScript的观察和认识,并提到了在项目开发中使用TypeScript的好处。最后,作者表示对TypeScript进行尝试和探索的态度。 ... [详细]
  • Vue基础一、什么是Vue1.1概念Vue(读音vjuː,类似于view)是一套用于构建用户界面的渐进式JavaScript框架,与其它大型框架不 ... [详细]
  • 本文介绍了如何使用PHP向系统日历中添加事件的方法,通过使用PHP技术可以实现自动添加事件的功能,从而实现全局通知系统和迅速记录工具的自动化。同时还提到了系统exchange自带的日历具有同步感的特点,以及使用web技术实现自动添加事件的优势。 ... [详细]
  • 本文介绍了闭包的定义和运转机制,重点解释了闭包如何能够接触外部函数的作用域中的变量。通过词法作用域的查找规则,闭包可以访问外部函数的作用域。同时还提到了闭包的作用和影响。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
author-avatar
古邳东少
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有