当前位置: 主页 > JAVA语言

java活跃度怎么计算-公众号粉丝活跃度怎么计算

发布时间:2023-02-10 09:33   浏览次数:次   作者:佚名

根据 Github Octoverse 2017 报告,JavaScript 是 Github 上最受欢迎的语言。 以拉取请求的数量来衡量,JavaScript 与 Python、Java 和 Go 的总和一样活跃。

JavaScript 已经征服了网络并“渗透”到服务器、移动、桌面和其他平台。

与此同时,GPU 加速的使用已经远远超出了计算机图形学的范围,现在已成为机器学习的必要组成部分。

训练神经网络和深度架构是一个计算密集型过程,已在机器智能领域产生了许多重要的先进成果。

本文着眼于这些趋势的日益融合,并概述了一些将 GPU 加速神经网络引入 JavaScript 世界的项目。

如何计算活跃度_java活跃度怎么计算_公众号粉丝活跃度怎么计算

概述

下面列出的所有项目都在积极维护,在 Github 上有数千颗星,并且也在 NPM 或 CDN 上分发。

它们都是通过 WebGL 在浏览器中进行 GPU 加速,如果不存在合适的显卡,则回退到 CPU。

本概述不包括旨在运行现有模型(尤其是使用 Python 框架训练的模型)的库。

最终,有四个项目上榜。

尽管其功能集面向神经网络,但 deeplearn.js 可以描述为通用机器学习框架。 Propel 是一个提供自动微分的科学计算库。 Gpu.js 提供了一种在 GPU 上运行 JavaScript 函数的便捷方式。 Brain.js 是旧神经网络库的延续,并使用 Gpu.js 硬件加速。

公众号粉丝活跃度怎么计算_如何计算活跃度_java活跃度怎么计算

深度学习.js

Deeplearn.js 是这四个项目中最受欢迎的项目,被描述为“用于机器智能的硬件加速 JavaScript 库”。 它由 Google Brain 团队和一个由 50 多名贡献者组成的社区提供支持。 两位主要作者是 Daniel Smilkov 和 Nikhil Thorat。

从“深度学习”导入 * 作为 dl

const xs = inputXs.as4D(-1, IMAGE_HEIGHT, IMAGE_WIDTH, 1)

const conv1Weights = dl。 多变的(

dl.randomNormal([FILTER_HEIGHT, FILTER_WIDTH, 1, NUMBER_FILTERS], 0, 0.1) 作为 dl.Tensor4D)

常量层 1 = dl。 整洁(()=> {

返回 xs.conv2d(conv1Weights, 1, '相同')

.relu()

.maxPool([2, 2], 步幅, 填充)

})

在 deeplearn.js 中定义卷积层

deeplearn.js 以 TypeScript 编写并以 Tensorflow 为模型,支持 Google Brain 旗舰开源项目中越来越多的功能。 API 包含三个部分。

第一部分介绍用于创建、初始化和转换张量的函数,张量是用于保存数据的类似数组的结构。

API 的下一部分提供了对张量执行的操作。 这包括基本的数学运算、归约、归一化和卷积。 在这一点上,循环神经网络的支持还不成熟,但它包含了大量的长短期记忆网络单元。

第三部分围绕模型训练展开。 涵盖了所有流行的优化器,从随机梯度下降 (SGD) 到 Adam。 另一方面,交叉熵损失函数是文献中提到的唯一损失函数。

API 的其余部分用于设置环境和管理资源。

node.js 上的实验性 GPU 加速,可用于 headless-gl。

该项目网站有许多令人难忘的演示。 其中包括由递归神经网络生成的钢琴演奏、用于构建模型的可视化界面,以及基于 SqueezeNet 的网络摄像头应用程序,SqueezeNet 是一种参数相对较少的图像分类器。

推进JS

PropelJS 被描述为“JavaScript 的可微分编程”。 主要作者是 Ryan Dahl 和 Bert Belder,他们的工作得到了 11 位社区贡献者的补充。

从 "propel" 导入 * 作为 pr

导出异步函数 train(maxSteps = 0) {

const ds = pr.dataset("mnist/train").batch(128).repeat(100)

const exp = 等待 pr。 实验(“exp001”)

for (const batchPromise of ds) {

const { images, labels } = await batchPromise

exp.sgd({ lr: 0.01 }, (params) =>

图片。 重新缩放([0, 255], [-1, 1])

.linear("L1", 参数, 200).relu()

.linear("L2", 参数, 100).relu()

.linear("L3", 参数, 10)

.softmaxLoss(标签))

如果 (maxSteps && exp.step >= maxSteps) 中断

}

}

具有三层训练的前馈神经网络,在 MNIST 数据集上训练

自动微分 (AD) 是该项目的核心,使我们不必手动指定导数。 对于给定的函数 f(x) 定义支持的张量操作,梯度函数可以用 grad. 多变量情况由 multigrad 涵盖。

除了 AD,项目的方向似乎并不完全清楚。 虽然网站上提到“类似 numpy 的基础设施”作为目标,但 API 正在“大力开发”,包括与神经网络和计算机视觉相关的功能。 使用 load 函数,可以解析 npy 文件的内容并将其用作张量。

在浏览器环境中,PropelJS 使用了 deeplearn.js 中的 WebGL 功能。 对于节点的 GPU 加速,该项目使用 TensorFlow 的 C API。

GPU.js

虽然作者通常使用CUDA而不是WebGL,但可以证明GPU编程是耗时的。 因此,笔者在遇到gpu.js的时候,非常惊喜。 该项目在 Github 上拥有约 5700 颗星,有 18 位贡献者,其受欢迎程度可与 deeplearn.js 相媲美。 随着时间的推移,一些人做出了重大贡献。 罗伯特·普卢默 (Robert Plummer) 是第一作者。

从“gpu.js”导入 GPU

常量 gpu = 新 GPU()

const multiplyMatrix = gpu. 创建内核(函数(a,b){

变量总和 = 0;

对于 (var i = 0; i < 512; i++) {

sum += a[this.thread.y][i] * b[i][this.thread.x];

}

返回总和;

}).setOutput([512, 512])

通过 gpu.js 进行矩阵乘法:Hello World 等同于 GPU 编程

在当前上下文中,内核是在 GPU 而不是 CPU 上执行的函数。 使用 gpu.js,内核可以用 JavaScript 的子集编写。 然后代码被编译并在 GPU 上运行。 几周前添加了通过 OpenCL 的 Node.js 支持。

数字的三个维度和数字数组用作输入和输出。 除了基本的数学运算之外,gpu.js 还支持局部变量、循环和 if/else 语句。

为了实现代码重用并允许更加模块化的设计,可以在内核代码中注册和使用自定义函数。

在内核的 JavaScript 定义中,此对象提供线程标识符并保存一个值,该值在实际内核中保持不变,但在外部是动态的。

该项目专注于加速 JavaScript 功能,并不试图提供神经网络框架。 为此,我们可以转向依赖于 gpu.js 的库。

大脑.js

Brain.js 是 harthur/brain 的继任者,harthur/brain 是一个可追溯到 2010 年的历史内容库。

从“brain.js”导入大脑

const 网络 = 新大脑。 经常性的。 循环神经网络()

常量数据 = [

{输入:[0, 0]java活跃度怎么计算,输出:[0]},

{输入:[0, 1],输出:[1]},

{输入:[1, 0],输出:[1]}java活跃度怎么计算

{输入:[1, 1],输出:[0]}

]

网络。 火车(数据)

总共有近 30 人为这两个内容存储库做出了贡献。

对 GPU 加速神经网络的支持基于 gpu.js,并且可以说是该项目最近最重要的开发。

除了前馈网络之外,Brain.js 还包括三种重要类型的递归神经网络的实现:经典 Elman 网络、长短期记忆网络,以及最近带有门控递归单元的网络。

主页显示了一个学习颜色对比度偏好的神经网络。 在源代码中可以找到另外两个演示,其中一个涉及使用 ASCII 符号绘制的字符。

机器学习加速的 JavaScript 库的出现有几个有趣的含义

公众号粉丝活跃度怎么计算_如何计算活跃度_java活跃度怎么计算

在线课程可以将与机器学习或 GPU 计算相关的练习直接合并到 Web 应用程序中。 学生不必在不同的操作系统和软件版本之间设置单独的开发环境。

许多基于神经网络的演示可以更轻松地部署,无需服务器端 API。

对机器学习感兴趣的 JavaScript 开发人员可以利用他们的专业知识,减少在集成问题上花费的时间。

此外,可以更有效地使用客户端可用的计算资源。 毕竟,并非所有显卡都用于虚拟现实和加密货币挖掘。

澄清一下,作者不提倡将本文中提到的库用于任务关键型神经网络。 Python 的生态系统仍然是大多数应用程序的首选。

然而,令人鼓舞的是,在过去 12 个月中取得了明显进展。 Deeplearn.js 一年前还不存在。 Gpu.js活跃度比较低,Brain.js不支持GPU加速。

随着时间的推移,这些项目将在某些方面与已建立的框架竞争,并用于一些最适合 JavaScript 的全新应用程序。