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、浏览器以及客户端计算的框架都可以在上面构建。

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

  1. web前端开发常用的10个高端CSS UI开源框架

    web前端开发常用的10个高端CSS UI开源框架   随着人们对体验的极致追求,web页面设计也面临着新的挑战,不仅需要更人性化的设计理念,还需要设计出更酷炫的页面.作为web前端开发人员,运用开源 ...

  2. 《物联网框架ServerSuperIO教程》-22.Web端对传感器实时监测与控制。附:v3.6.8版本,支持WebSocket

    1.ServerSuperIO v3.6.8更新内容 1.1 增加WebSocket服务端功能,支持自控模式.并发模式.单例模式,不支持轮询模式1.2 接收数据缓存与现有的IO实例分离.1.3 优化代 ...

  3. 从零开始搭建Electron+Vue+Webpack项目框架,一套代码,同时构建客户端、web端(一)

    摘要:随着前端技术的飞速发展,越来越多的技术领域开始被前端工程师踏足.从NodeJs问世至今,各种前端工具脚手架.服务端框架层出不穷,“全栈工程师”对于前端开发者来说,再也不只是说说而已.在NodeJ ...

  4. 【原创】从零开始搭建Electron+Vue+Webpack项目框架(六)Electron打包,同时构建客户端和web端

    导航: (一)Electron跑起来(二)从零搭建Vue全家桶+webpack项目框架(三)Electron+Vue+Webpack,联合调试整个项目(四)Electron配置润色(五)预加载及自动更 ...

  5. dubbo框架的web端(war)和server端(tar.gz)结合jenkins打包方式

    一.web端程序,打包成war包 jenkins配置 1.项目名称,旧文件处理配置 2.参数构建配置 3.源码库配置 4.打包文件pom.xml配置及多环境打包传参,此处传参qa(表示打测试环境包,名 ...

  6. 移动Web UI库(H5框架)

    1.Framework7 Framework7 - is a free and open source mobile HTML framework to develop hybrid mobile a ...

  7. 移动Web UI库(H5框架)有哪些,看这里就够了

    前言 今年上半年,项目组在项目开发的过程中建立了一套风格统一,组件丰富完善,命名统一规范的PC端UI库,适用于做大型站点,该UI库也是应用到了整个平台的项目中,在各个项目组中进行推广.因为项目的保密性 ...

  8. Web端即时通讯基础知识补课:一文搞懂跨域的所有问题!

    本文原作者: Wizey,作者博客:http://wenshixin.gitee.io,即时通讯网收录时有改动,感谢原作者的无私分享. 1.引言 典型的Web端即时通讯技术应用场景,主要有以下两种形式 ...

  9. CAD网页Web端显示开发为什么要以WebGIS的思路来开发?

    背景 在之前的博文CAD图DWG解析WebGIS可视化技术分析总结中讲解了如何把CAD的DWG格式的图纸Web可视化的方案.博文发布后,受到不少同行们的关注,也有不少咨询一些专业问题,其中大家可能疑惑 ...

随机推荐

  1. aws的安全组

    aws有安全组来控制进入和去除的规则. 入站:就是外网访问你出站:就是你访问外网用户可以创建入站和出站规则,从而阻挡或者允许特定程序或者端口进行连接;用户可以将规则应用于一组程序.端口或者服务,也可以 ...

  2. (1.16)mysql server优化之buffer pool

    (1.16)mysql server优化之buffer pool 1.innodb buffer pool 查看 show status like  'Innodb_buffer_pool_%'; 该 ...

  3. 报错解决——uwsgi错误invalid request block size

    uwsgi错误invalid request block size 使用uwsgi启动django代码,然后打开浏览器输入http://localhost:8000/admin.后台出现下面错误 in ...

  4. .ashx文件与.ashx.cs

    如果项目是“新建网站”,添加的ashx是没有ashx.cs的:如果是新建"asp.net web 应用程序",添加的ashx是有ashx.cs的. 今天做项目测试遇到一个问题,因为 ...

  5. nginx 部署web页面问题

    nginx 部署web页面的时候,路径都是对的,但是css文件就是不起作用,控制台提示如下,原来是格式的问题,截图如下: css 被转成了application/octet-stream,这个是ngi ...

  6. spark.yarn.jar和spark.yarn.archive的使用

    启动Spark任务时,在没有配置spark.yarn.archive或者spark.yarn.jars时, 会看到不停地上传jar非常耗时:使用spark.yarn.archive可以大大地减少任务的 ...

  7. SaltStack 数据系统 Grains Pillar

    grains 先来一个很好用的命令 # salt '*' grains.items \\基本上输出了所有你想要的信息 192.168.100.138: ---------- SSDs: biosrel ...

  8. jupyter 快捷键

    Jupyter Notebook 的快捷键 Jupyter Notebook 有两种键盘输入模式.编辑模式,允许你往单元中键入代码或文本:这时的单元框线是绿色的.命令模式,键盘输入运行程序命令:这时的 ...

  9. Go断后,Dart冲前,Google的野心

    今天,我要讲讲新的前端web语言-Dart 我是网上看到这段话,激起了兴趣,虽然我不能算是真正的web前端从业者!哈哈 [ Dart语言由谷歌制造,用来替代Javascript,弥补Javascrip ...

  10. IdentityServer3:.NET开源OpenID和OAuth2架构

    简介 大多数软件的相互沟通图:客户端与Web应用程序的访问.应用与Web api.api与api……相互沟通则需要授权.身份验证 IdentityServer3的功能:Web认证.SSO单点登录.We ...