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. Java高频面试题

    网络相关 1.http1.0和http1.1的区别? http1.0每次请求都需要和服务器建立一个TCP连接,服务器完成请求后立即断开TCP连接. http1.1支持长连接,客户端在http请求头上加 ...

  2. vim常用指令整理小结

    启动Vim后,默认是在 Normal 模式下,但是我们有时不知道是在编辑模式还是normal模式,按ESC键就可以返回normal模式.因为所有的命令都需要在Normal模式下使用,所以建议多按几下E ...

  3. sed 操作命令

    sed介绍 grep 只能过滤文件内容,sed既能过滤文件内容同时还能对文件内容进行修改.  sed 算是一种编程语言,它有自己的固定语法. sed是一种行编辑器,sed会在内存中开辟一块独立的空间( ...

  4. w97常用功能代码

    1,onclick中添加日期控件 2,onpicked事件即是点击控件后触发的事件 3,dp.cal.getNewDateStr()即是点击到的日期字符串 <script> functio ...

  5. php循环方法实现先序、中序、后序遍历二叉树

    二叉树是每个节点最多有两个子树的树结构.通常子树被称作“左子树”(left subtree)和“右子树”(right subtree). <?php class Node { public $v ...

  6. [py]python __file__ 与argv[0]

    http://andylin02.iteye.com/blog/933237 BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__ ...

  7. maxcompute笔记

    maxcompute安装和配置 https://help.aliyun.com/document_detail/27804.html?spm=a2c4g.11174283.3.5.566a590e0P ...

  8. 2019.03.30 图解HTTP

    文章来源<图解HTTP> 第一章 了解Web及网络基础 你有想过当你在浏览器(web browser)的地址栏上输入URL时,Web页面是如何实现的吗? 嗯,好像也没想过 web使用一种名 ...

  9. CMB面试准备-基础

    1.简述 private. protected. public. internal 修饰符的访问权限 private : 在类的内部才可以访问. protected : 保护成员,该类内部和继承类中可 ...

  10. CentOS6.5安装Elasticsearch5.3.0

    1. 首页到官方网站下载最新安装包 https://www.elastic.co/downloads/elasticsearch elasticsearch-5.3.0.tar.gz 2. 将软件包上 ...