9 Node 中的 TensorFlow.js
TensorFlow CPU
TensorFlow CPU 软件包可以按如下方式导入:
import * as tf from '@tensorflow/tfjs-node'
从此软件包导入 TensorFlow.js 时,您导入的模块将由 TensorFlow C 二进制文件加速并在 CPU 上运行。CPU 上的 TensorFlow 使用硬件加速来加速后台的线性代数运算。
此软件包可以在支持 TensorFlow 的 Linux、Windows 和 Mac 平台上运行。
注:您不必导入 '@tensorflow/tfjs' 或者将其添加到您的 package.json 中。它由 Node 库间接导入。
TensorFlow GPU
TensorFlow GPU 软件包可以按如下方式导入:
import * as tf from '@tensorflow/tfjs-node-gpu'
与 CPU 软件包一样,您导入的模块将由 TensorFlow C 二进制文件加速,但是它将在支持 CUDA 的 GPU 上运行张量运算,因此只能在 Linux 平台上运行。此绑定比其他绑定选项至少快一个数量级。
注:此软件包目前仅适用于 CUDA。在选择本方案之前,您需要在带有 NVIDIA 显卡的的计算机上安装 CUDA。
注:您不必导入 '@tensorflow/tfjs' 或者将其添加到您的 package.json 中。它由 Node 库间接导入。
普通 CPU
使用普通 CPU 运算运行的 TensorFlow.js 版本可以按如下方式导入:
import * as tf from '@tensorflow/tfjs'
此软件包与您在浏览器中使用的软件包相同。在此软件包中,运算在 CPU 上以原生 JavaScript 运行。此软件包比其他软件包小得多,因为它不需要 TensorFlow 二进制文件,但是速度要慢得多。
由于此软件包不依赖于 TensorFlow,因此它可用于支持 Node.js 的更多设备,而不仅仅是 Linux、Windows 和 Mac 平台。
生产考量因素
Node.js 绑定为 TensorFlow.js 提供了一个同步执行运算的后端。这意味着当您调用一个运算(例如 tf.matMul(a, b)
)时,它将阻塞主线程,直到运算完成。
因此,绑定当前非常适合脚本和离线任务。如果您要在正式应用(例如网络服务器)中使用 Node.js 绑定,应设置一个作业队列或设置一些工作进程线程,以便您的 TensorFlow.js 代码不会阻塞主线程。
API
一旦您在上面的任何选项中将软件包作为 tf 导入,所有普通的 TensorFlow.js 符号都将出现在导入的模块上。
tf.browser
在普通的 TensorFlow.js 软件包中,tf.browser.*
命名空间中的符号将在 Node.js 中不可用,因为它们使用浏览器特定的 API。
目前,存在以下 API:
- tf.browser.fromPixels
- tf.browser.toPixels
tf.node
两个 Node.js 软件包还提供了一个名为 tf.node
的命名空间,其中包含 Node 特定的 API。
TensorBoard 是一个值得注意的 Node.js 特定的 API 示例。
在 Node.js 中将摘要导出到 TensorBoard 的示例:
const model = tf.sequential();model.add(tf.layers.dense({ units: 1, inputShape: [200] }));model.compile({ loss: 'meanSquaredError', optimizer: 'sgd', metrics: ['MAE']});// Generate some random fake data for demo purpose.const xs = tf.randomUniform([10000, 200]);const ys = tf.randomUniform([10000, 1]);const valXs = tf.randomUniform([1000, 200]);const valYs = tf.randomUniform([1000, 1]);// Start model training process.async function train() { await model.fit(xs, ys, { epochs: 100, validationData: [valXs, valYs], // Add the tensorBoard callback here. callbacks: tf.node.tensorBoard('/tmp/fit_logs_1') });}train();
9 Node 中的 TensorFlow.js相关推荐
- JavaScript玩转机器学习:Node 中的 TensorFlow.js
JavaScript玩转机器学习:Node 中的 TensorFlow.js TensorFlow CPU TensorFlow CPU 包,可以按如下方式导入: import * as tf fro ...
- python 加载动图_在浏览器中使用TensorFlow.js和Python构建机器学习模型(附代码)...
大数据文摘授权转载自数据派THU 作者:MOHD SANAD ZAKI RIZVI 本文主要介绍了: TensorFlow.js (deeplearn.js)使我们能够在浏览器中构建机器学习和深度学习 ...
- 独家 | 在浏览器中使用TensorFlow.js和Python构建机器学习模型(附代码)
作者:MOHD SANAD ZAKI RIZVI 翻译:吴金笛 校对:丁楠雅 本文约5500字,建议阅读15分钟. 本文首先介绍了TensorFlow.js的重要性及其组件,并介绍使用其在浏览器中构建 ...
- linux tensorflow demo_独家 | 在浏览器中使用TensorFlow.js和Python构建机器学习模型(附代码)...
作者:MOHD SANAD ZAKI RIZVI 翻译:吴金笛 校对:丁楠雅 本文约5500字,建议阅读15分钟. 本文首先介绍了TensorFlow.js的重要性及其组件,并介绍使用其在浏览器中构建 ...
- 在浏览器中使用tensorflow.js进行人脸识别的JavaScript API
作者 | Vincent Mühle 编译 | 姗姗 出品 | 人工智能头条(公众号ID:AI_Thinker) [导读]随着深度学习方法的应用,浏览器调用人脸识别技术已经得到了更广泛的应用与提升.在 ...
- 在微信小程序中引用tensorflow.js坑向总结(一)
各种坑 1. Error:No backend found in registry 2. Error: This application has not registered any plugins ...
- 用 TensorFlow.js 在浏览器中训练一个计算机视觉模型(手写数字分类器)
文章目录 Building a CNN in JavaScript Using Callbacks for Visualization Training with the MNIST Dataset ...
- 用TensorFlow.js在浏览器中进行实时语义分割 | MixLab算法系列
语义分割是监测和描绘图像中每个感兴趣对象的问题 当前,有几种方法可以解决此问题并输出结果 如下图示: 语义分割示例 这种分割是对图像中的每个像素进行预测,也称为密集预测. 十分重要且要注意的是,同一类 ...
- js 只准输入数字_基于TensorFlow.js的JavaScript机器学习
Credits: aijs.rocks 虽然python或r编程语言有一个相对容易的学习曲线,但是Web开发人员更喜欢在他们舒适的javascript区域内做事情.目前来看,node.js已经开始向每 ...
最新文章
- Virtual Lab. For Probability and Statistics
- python from __future__ import division的作用
- dedecms的自定义模块
- vb鼠标涂鸦板的制作
- python图形界面教程_图形教程
- IDEA——Maven的配置与使用
- 解决Windows Server2008 R2中IE开网页时弹出阻止框(Windows Server2008网页无法打开的问题)...
- C中的位域与大小端问题
- kotlin密封类_Kotlin密封级
- Mac 上设置文件共享教程
- mysql的常见命令与语法规范
- 微信绑定的卡服务器,微信亲属卡有什么作用 微信亲属卡怎么绑定
- Introduction to 3D Game Programming with Directx12系列小结
- cosh和acosh--双曲余弦和反双曲余弦函数
- 系统性谈谈软件可靠性——第1讲:软件可靠性基础概念
- 网站安全防护措施有哪些
- python中sys模块下载_python模块:sys模块
- Crashing Robots
- Python- sklearn之最小二乘法
- 零基础入门金融风控-贷款违约预测_Task1