TensorFire:WEB端的高性能神经网络框架

近日,一种专门用于在网页内执行神经网络算法的JavaScript库——TensorFire引起了人们的关注,这种JavaScript库在浏览器中使用GPU加速运行谷歌的TensorFlow,是机器学习走向大众化的一种方式。

TensorFire由麻省理工学院研究生团队开发,可以在任何GPU上运行TensorFlow-style的机器学习模型,不需要任何像Keras-js这样特定于GPU中间件的机器学习库。TensorFire是通过程序员已经接触过的一些软件或硬件来向广大用户提供学习。TensorFire通过准确预测模型的工作进展,可以得到部分所需资源。

浏览器中的机器学习

TensorFire使用WebGL标准,WebGL标准是用于在浏览器中加速渲染GPU图形的跨平台系统,支持GLSL。GLSL类似C语言,用于编写着色器,可以直接在GPU上转换数据的短程序。

着色器通常在WebGL传输渠道转换图形的呈现方式,比如渲染阴影或其他视觉效果。但是TensorFire使用着色器并行计算从TensorFlow模型生成预测的计算需求。另外,TensorFire还提供了一个用于导入现有TensorFlow和Keras模型的库。

使用这个框架,可以将经过训练的模型直接部署到web浏览器中,并在浏览器中进行本地预测。用户不需要下载、安装或编译任何东西,所有的工作都是直接在浏览器中完成,用于进行预测的数据也完全在客户端处理。GPU的品牌也没有限制,像AMD和NvidiaGPU都可以。

TensorFire基于网络的例子展示了一种style-transfer神经网络,style-transfer就是一件作品的风格可以映射到另一个图像。演示中最慢的部分是下载模型和编译着色器过程,而实际执行只需要一两秒钟。

TensorFire比其他解决方案更快。弹跳数据是GPU和CPU之间常见的性能瓶颈,为避免这种情况,TensorFire在GPU上保留尽可能多的数据。

TensorFire的优势

TensorFire最突出的优点是它的便携性和便利性。现代web浏览器在大多数操作系统和硬件平台上运行,甚至低端智能手机也有大量的GPU功耗。从机器学习模型中获得大部分有价值的工作都是建立机器学习流程,执行培训或交付预测。把这个过程的大部分工作都归结为“打开一个网页浏览器点击”,对某些类工作来说非常有用。

TensorFire的另一个优点是允许部署、预测完全在客户端完成。其实这对于已经部署到云计算的成熟模型和数据的优势并不大。但是对于部署模型很小的应用程序来说,非常有用。如果数据在客户端,用户上传资料会比较谨慎。

TensorFire的第三个优点是基于Nvidia和AMDGPU的高速增长,从理论上放宽显卡可用于机器学习品牌的限制。

从以往来看,Nvidia的CUDA标准一直是通过GPU加速机器学习的首选,提供比支持广泛的硬件OpenBS标准更多的性能。AMD针对OpenCL性能问题有自己的解决办法,但TensorFire让用户和程序员完全避开了这个问题。

TensorFire利用增长现象,使机器学习模型更加紧凑、高效,只具有轻微(通常不可检测)的精度损失。这种“低精度量化张量”方法意味着可以将更小的模型部署到客户端,并且可以使预测更迅速。TensorFire“量化精度低张量”方法允许软件在更广泛的GPU和浏览器上运行,特别是那些不支持全范围WebGL扩展的软件。

TensorFire将该库发布为有MIT许可证开源项目,所以在TensorFire中加速方法也可以应用于其他软件应用中,包括与TensorFlow或机器学习没有任何关系的应用。TensorFire中的低级别GLSLAPI也可以用于执行任意并行的通用计算,也就是说,其他支持GPU-powered、浏览器以及客户端计算的框架都可以在上面构建。

文章来源:IT168

原文地址

欢迎关注个人公众号,查看更多好文。

时间: 2024-08-06 15:42:42

TensorFire:WEB端的高性能神经网络框架的相关文章

Yii v1.1.7发布 Web应用的高性能PHP框架

Yii 是一个基于组件.用于开发大型 Web 应用的高性能 PHP 框架.它将 Web 编程中的可重用性发挥到极致,能够显著加速开发进程.Yii(读作"易")代表简单(easy).高效(efficient).可扩展(extensible). Yii采用严格的OOP编写,并有着完善的库引用以及全面的教程.从 MVC,DAO/ActiveRecord,widgets,caching,等级式RBAC,Web服务,到主题化,I18N和L10N,Yii提供了今日Web 2.0应用开发所需要的几乎

Yii PHP Framework v1.1.6发布 大型Web应用高性能PHP框架

Yii是一个基于组件.用于开发大型 Web 应用的高性能 PHP 框架.在WEB开发中Yii可以最大限度的实现代码重用,极大的提高开发的速度.名字Yii(读音是Yee or [ji:],应该就是"易"的读音 )代表的是容易(easy),高效(effcient)和可扩展(extensible). 这便是基于组件的,高性能的phphttp://www.aliyun.com/zixun/aggregation/13435.html">开发框架,yii.是开发大型网站最好的选择

Yii 1.1.8发布 基于组件的高性能PHP框架

Yii是一个基于组件.用于开发大型 Web 应用的高性能 PHP 框架.在WEB开发中Yii可以最大限度的实现代码重用,极大的提高开发的速度.名字Yii(读音是Yee or [ji:],应该就是"易"的读音 )代表的是容易(easy),高效(effcient)和可扩展(extensible) Yii一开始就精心设计,以适应复杂的WEB应用开发.他不是一些项目的副产品或者第三方集成.而是融合了作者丰富的 Web 应用开发经验和其它热门 Web 框架和应用的优秀思想的结晶. 最后,但并非不

Java Web前端的高性能

引言 在前端优化的第一部分中,主要讲解了对静态资源的一些优化措施,包括图片压缩.CSS Sprites 技术. GZIP 压缩等.这一部分,本文将讲解前端优化里重要的 Flush 机制.动静分离.HTTP 持久连接.HTTP 协议灵活应用. CDN 等.结合这些技术或思想,相信会使 Java Web 应用程序的性能更上一层楼. Flush 机制的使用 实际上 在 Web 技术中,Flush 机制并不新鲜,它的思想是无需等到网页内容全部加载完毕,一次性写回客户端,而是可以部分逐 次的返回.如果网页

鹰眼跟踪、EDAS燎原, 看高性能服务框架EDAS的架构实践

本文主要从高速增长的阿里业务开始谈起,讲述当年面对的业务场景和背景,碰到了什么样的技术挑战,且用什么样的思路去解决它,最后和大家分享了解决后产生的产品Aliware中非常重要的EDAS. 直播视频:点此进入 PDF下载:点此进入 以下是演讲内容整理:   高速业务增长带来的挑战 大型电子商务平台吸引了大量卖家和买家,图为2014年IPO时候截得的图,可以看到在阿里上有10亿多件商品等,现在仍然以非常高的速度在增长. 图为2003年到2010年淘宝网注册用户数,用户数从非常低的值逐渐涨到近4000

【智能合约】客户端和web端对智能合约的事件Event进行调用的代码示例

客户端和web端对智能合约的事件Event进行调用的代码示例 web truffle 按官网的例子 http://truffleframework.com/boxes/pet-shop truffle作为一个运行测试框架,用的也是web3对智能合约进行调用. 文件所在的位置src/js/app.js initWeb3: function() { // web3入口 if (typeof web3 !== 'undefined') { App.web3Provider = web3.current

Web 端的下一代三维图形

本文讲的是Web 端的下一代三维图形, 原文地址:Next-generation 3D Graphics on the Web 原文作者:Dean Jackson 译文出自:掘金翻译计划 本文永久链接:github.com/xitu/gold-m- 译者:reid3290 校对者:leviding,H2O-2 今天,苹果 WebKit 团队提议在 W3C 成立一个新的社区群组(Community Group)来讨论 Web 端三维图形的未来和开发一款支持现代 GPU 特性(包括底层图像处理和通用

基于MVC4+EasyUI的Web开发框架形成之旅--框架总体界面介绍

在前面介绍了一些关于最新基于MVC4+EasyUI的Web开发框架文章,虽然Web开发框架的相关技术文章会随着技术的探讨一直写下去,不过这个系列的文章,到这里做一个总结,展示一下整体基于MVC4+EasyUI的界面效果,让大家对这款Web开发框架有一个形象的了解,界面设计以及相关思路可以借鉴提高,也可以对相关的内容进行相互探讨,共同提高. 技术特点:整个Web开发框架,界面部分采用较新的技术,包括MVC4,最新版本的EasyUI,以及zTree树形控件.Uploadify文件上传组件等模块,另外

Android App端与PHP Web端的简单数据交互实现示例

前言 由于学校科技立项的项目需要实现Android App端与PHP Web端的简单数据交互的实现,当前场景是Web端使用的是MySql数据库,Apache服务器和PHP语言编写的.数据交互的简单理解就是Android能向服务端进行数据获取,同时也能进行数据提交. 实现流程 流程说明 Andorid Server端对MySql数据库进行简单的查询操作,并将查询数据结果转换为Json格式提供给Andorid利用OKhttp读取再解析Json展示到APP上:同时Andorid端利用OKhttp提交给