机器学习领域新技术的迅猛发展帮助软件开发人员以前所未有的方式构建新的人工智能应用程序。

目前,大多数 AI 爱好者利用 Python 框架进行 AI 和机器学习开发。

但环顾四周,人们可能还会发现基于 JavaScript 的框架也正在 AI 中实现。

这个有趣的交叉点让我们探索和试验了一起使用 Javascript 和机器学习的奇怪可能性。

从我们的研究中分享,这里有一些简洁的 JavaScript 机器学习库,它们将 Javascript、机器学习、DNN 甚至 NLP 结合在一起。看一看。

1.TensorFlow.js

由于其全面的线性代数核心和深度学习层, Tensorflow.js在 2019 年已成为所有机器学习 Javascript 项目的面包和黄油。

它在支持的 API 数量上迅速赶上了它的 Python 姐妹,并且在这一点上,几乎机器学习中的任何问题都可以使用它来解决。

Tensorflow.js可以直接在浏览器中使用,同时利用 WebGL 进行加速。

支持浏览器和 Node.js 环境的 Tensorflow.js 模型已被包括Brain.js和machinelearn.js在内的许多开源库采用。

优点

  1. 它具有更好的计算图可视化。
  2. 它具有无缝性能、快速更新和频繁发布新功能的优势。
  3. 它可以部署在各种硬件机器上,从蜂窝设备到具有复杂设置的计算机。
  4. Tensorflow 具有高度并行性,旨在使用各种后端软件(GPU、ASIC)等。

缺点

  1. 不支持 Windows
  2. 缺少符号循环
  3. 除 Nvidia 外不支持 GPU,仅支持语言

2.Brain.js

Brain.js是一个用于神经网络的 Javascript 库,替代了(现已弃用的)“brain”库,它可以与Node.js或浏览器(注意计算)一起使用,并为不同的任务提供不同类型的网络。

优点

  1. 它非常适合使用高级语言快速创建简单的神经网络 (NN),您可以在其中利用大量开源库。
  2. 有了一个好的数据集和几行代码,你就可以创建一些非常有趣的功能。
  3. 它能够在客户端 javascript 上运行。

缺点

  1. 它将您的网络架构限制在只能执行简单应用程序的地步
  2. softmax 层或其他结构的可能性不大。

3.ml.js

ml.js是一个全面的通用 JavaScript ML 库,适用于浏览器和 Node.js。它为有监督和无监督问题提供简单且关键任务的模型和实用程序。它专注于 Javascript 和 Typescript 开发人员的简单性和多合一通用机器学习,提供聚类、分解​​、集成、装袋、线性模型、特征提取等。

优点

  1. 它允许对数组、哈希表、排序、随机数生成进行位操作。
  2. 它为线性代数、数组操作和优化提供了例程。
  3. 它支持交叉验证。

缺点

  1. 它对硬件加速的支持有限。
  2. 它对浏览器主机环境中的文件系统没有默认访问权限。

4.stidlib

stidlib是构建无限可扩展、自我修复 API 的最快、最简单的方法。标准库基于功能即服务(“无服务器”)架构,最初由 AWS Lambda 推广。您可以使用标准库在几分钟内为自己和其他开发人员构建模块化、可扩展的 API,而无需管理服务器、网关、域、编写文档或构建 SDK。您的开发工作流程从未如此简单——专注于编写您喜欢的代码,让标准库处理其他一切。

优点

  1. 轻松的 API 共享和访问控制。
  2. 自动生成的文档。
  3. 用于应用程序和库开发的经过全面测试的实用程序。
  4. 高性能、严谨、稳健的数学和统计函数

缺点

  1. 不支持计算反双曲正割。
  2. 不支持创建不包含运行时断言的项目构建。

5.ConvNetJS

ConvNetJS是另一个用于神经网络和深度学习的库。它可以在浏览器中训练神经网络。除了分类和回归问题,它还有仍在实验阶段的强化学习模块(使用 Q-learning)。ConvNetJS 为擅长图像识别的卷积神经网络提供支持。

优点

  1. 用 Javascript 制定和解决神经网络
  2. 完全在浏览器中训练深度学习模型(神经网络)
  3. 没有编译器,没有安装

缺点

  1. 对于想要使用它的初学者来说,难以管理并且缺乏简单性。
  2. 它的处理有时比其他工具慢。

6.Neataptic

Neataptic提供灵活的神经网络;只需一行代码即可删除神经元和突触。神经网络完全不需要固定的架构来发挥作用。这种灵活性允许通过使用多个线程完成的神经进化来为您的数据集塑造网络。

优点

  1. 多线程/GPU加速能力
  2. 神经元激活的可视化
  3. 自适应学习率(每个连接)

缺点

  1. 它的性能相对较差。
  2. 它不再维护。

7.Synaptic

Synaptic实现了一种通用的“无架构”算法,可用于创建比通常遇到的更广泛的网络类型。它带有一些预定义的网络——多层感知器、多层长短期记忆网络、液态机器等等。

优点

  1. 能够创建二阶和循环网络。
  2. 它带有一些预定义的网络。

缺点

  1. 它不再被积极维护。
  2. 与其他库相比,它的运行时间很慢

8.Keras

Keras已成为领先的神经网络库,用于在大量平台上创建和准备深度学习模型。它是用 Python 编写的,拥有超过 250,000 个个人客户端,是仅次于 TensorFlow 的第二大深度学习结构。

优点

  1. 它能够在程序中运行 Keras 模型。
  2. 能够利用 WebGL 3d-designs API 提供的 GPU(图形处理单元)支持。
  3. 模型可以在任何后端进行训练。

缺点

  1. 它仅在 CPU(中央处理器)模式下运行。
  2. 它只处理在其他框架上运行的高级 API。
  3. 如果您想为研究目的制作自己的抽象层,这不是很有用

9. Mathjs

Mathjs是一个可满足 JavaScript 中所有数学需求的库,具有广泛的线性代数 API,包括矩阵运算和核心数学。它非常轻量级,因为它不依赖于其他不断增加的加速技术,例如 WebAssembly 或 WebGL。

优点

  1. 包含一个灵活的表达式解析器。
  2. 也可以用作命令行应用程序
  3. 带有大量内置函数和常量
  4. 进行符号计算

缺点

  1. 它不是那么专业,因此不包括其他库中包含的功能,这些库专注于其他领域。
  2. 运行时间相对较慢。

10. Limdu.js

Limdu.js是 Node.js 的机器学习框架,支持二进制分类、多标签分类、特征工程、在线学习和实时分类。它目前处于 alpha 状态并正在寻找贡献者。

优点

  1. 序列化和反序列化的能力
  2. 多标签分类。
  3. 它还支持二进制分类

缺点

  1. 低贡献。
  2. 数据集的容易突变。

11.Neuro.js

Neuro是一个库,用于在 JavaScript 中开发和训练 ML 模型,并在浏览器或 Node.js 上进行部署。它还有助于构建 AI 助手和聊天机器人。

优点

  1. 它支持多标签分类。
  2. 在线学习
  3. 还支持实时分类。

缺点

  1. 它不支持网络工作者。
  2. 没有 LSTM 和随时间的反向传播。

12.deeplearn.js

deeplearn.js是一个用于机器智能的开源硬件加速 JavaScript 库。deeplearn.js将高性能机器学习构建块引入网络,允许您在浏览器中训练神经网络或在推理模式下运行预训练模型。

优点

  1. 它允许通过 WebGL Javascript API 使用 Javascript 实现 ML。
  2. 它可以通过 webGL 使用 GPU 等硬件加速器来执行更快、更出色的 2D 和 3D 图形计算。
  3. 能够执行更快的推理以及完整的反向传播。

缺点

  1. 它需要昂贵的 GPU。
  2. 由于复杂的数据模型,训练非常昂贵

13.Apache  MXNetJS

MXNetJS是 Apache MXNet  Javascript 包。MXNetJS 为浏览器带来了最先进的深度学习推理 API。它是使用 Emscripten 和 MXNet Amalgamation 生成的。

MXNetJS 允许您在任何计算图中运行最先进的深度学习模型的预测,并将深度学习的乐趣带到客户端。

优点

  1. XNet 包含一个动态依赖调度器
  2. MXNet 便携且轻巧,
  3. 可以在多个 GPU 和多台机器上有效扩展

缺点

  1. 与 Tensorflowjs 相比,它背后的社区要小得多;
  2. 它在研究界并不那么受欢迎。

14. Synapses

Synapses 是一个轻量级的神经网络库,适用于 js、JVM 和 .net。它的特点fitNetwork是一个新的神经网络,用一次观察训练。

优点

  1. 轻松创建神经网络
  2. 可以创建定制的神经网络

缺点

  1. 相对较新——两天前在撰写本文时推出
  2. 没有太多可用的文档

15. Compromise

Compromise是一个解释和解析文本的javascript库。并做出一些合理的决定。妥协通过压缩大量单词然后在运行时扩展它们来工作。

优点

  1. 足够快地在按键上运行
  2. 它体积小、速度快,而且通常足够好。

缺点

  1. 相对较新
  2. 没有太多可用的文档

结论
在本文中,我们将介绍 15 个最佳开源JavaScript 机器学习库,以扩展 JavaScript 的功能。

此外,作为拥有并使用正确的 JavaScript 机器学习库的开发人员,将帮助您寻求组合一种算法,该算法将利用您选择的机器学习项目的优势和能力。

本文只是 JavaScript 机器学习库的冰山一角,在以后的文章中还有更多内容需要介绍。

前 15 个 JavaScript 机器学习库相关推荐

  1. 2019年11个值得研究的Javascript机器学习库

    https://www.toutiao.com/a6669159846014616071/ 虽然大部分机器学习都是用python这样的语言完成的,但在Javascript生态系统中,其前端和后端社区都 ...

  2. js 只准输入数字_基于TensorFlow.js的JavaScript机器学习

    Credits: aijs.rocks 虽然python或r编程语言有一个相对容易的学习曲线,但是Web开发人员更喜欢在他们舒适的javascript区域内做事情.目前来看,node.js已经开始向每 ...

  3. 基于TensorFlow.js的JavaScript机器学习

    Credits: aijs.rocks 虽然python或r编程语言有一个相对容易的学习曲线,但是Web开发人员更喜欢在他们舒适的javascript区域内做事情.目前来看,node.js已经开始向每 ...

  4. JavaScript机器学习之线性回归

    译者按: AI时代,不会机器学习的JavaScript开发者不是好的前端工程师. 原文: Machine Learning with JavaScript : Part 1 译者: Fundebug ...

  5. 性能:15个JavaScript本地存储技术的函数库和工具

    当构建更复杂的JavaScript应用程序运行在用户的浏览器是非常有用的,它可以在浏览器中存储信息,这样的信息可以被共享在不同的页面,浏览会话. 在最近的过去,这将有可能只被cookies文本文件保存 ...

  6. python功能强大的库_2018 年最受欢迎的15个顶级 Python 库

    原标题:2018 年最受欢迎的15个顶级 Python 库 作者 | Goutham Veeramachaneni 译者 | 陈利鑫 近日,数据科学网站 KDnuggets 评选出了顶级 Python ...

  7. js中的new file_深受 Pandas 启发的 JavaScript 开源库 — Danfo.js 现已推出!

    特邀博文 / 独立研究员 Rising Odegua 与来自 Data Science Nigeria 的 Stephen Oni Danfo.js 是个 JavaScript 开源库,提供了高性能. ...

  8. 2018 年最受欢迎的15个顶级 Python 库

    ↑ 点击上方[计算机视觉联盟]关注我们 近日,数据科学网站 KDnuggets 评选出了数据科学.深度学习.机器学习领域最受欢迎的15个python库. 图 1:根据 GitHub star 和贡献评 ...

  9. [转载] Python机器学习库scikit-learn使用小结(二)

    参考链接: Scikit-learn中的模型构建:Python机器学习库 scikit-learn库(后三小结) 在做数据分析和挖掘的过程中,数据的处理(标准化).划分.快速建模都是必不可少的方式.这 ...

最新文章

  1. 开源wkhtmltopdf使用心得 (二)
  2. poj 3740 Easy Finding
  3. 用Cobertura 测量测试覆盖率
  4. 【源资讯 第37期】一个时代的终结 —— 再见, Flash !
  5. 网易2020校招笔试编程题回顾
  6. python爬取的信息条数比页面显示多_Python爬取分析北京二手房数据?数据结果真的太吓人了...
  7. 计算机专业比重点线高40多分,这3所211大学,超过一本线40分就可报考,性价比高,值得报考...
  8. 线性回归原理与spark/sklearn实现
  9. 原来女孩子做电子工程师也很厉害。。
  10. 几个常用shell脚本命令
  11. Linux ln命令、软链接和硬链接的区别
  12. WPF的ListBox的数据绑定,但需要添加控件在里面的时候
  13. 淘宝的开源分布式文件系统TFS
  14. C#图片处理之: 锐化
  15. 廖雪峰python学习笔记【20】web开发
  16. 腾讯视频qlv格式怎么转换成mp4在手机上播放
  17. 如何快速删除某几页的页眉页脚
  18. 20190421 工作周记录-反思
  19. html progress改变样式,自定义html中Progress的样式
  20. NodeJS解析前端请求图片链接,将服务器目录下的图片返回给前端用于页面展示

热门文章

  1. (swing读书笔记)Insets/Border/Icon/Action
  2. 听说你想用Java去掉或者替换PDF里全部文本?看这
  3. 趣图 | 要不回家考个公务员吧
  4. idea快速展开和折叠全部方法的快捷键
  5. 吊打消费主义陷阱(保持思考,兼听则明)
  6. linux系统下连不上网,linux系统,连不上网怎么办?请详述
  7. 最新神经网络论文推荐,最新神经网络图像渲染
  8. C++布隆过滤器和哈西切分
  9. painter X Smart Stroke Brushes(轻抚画笔)画笔
  10. 装饰模式-衣服穿着设计