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. 操作防火墙-centos7

    centos7对防火墙的操作systemctl status firewalld # 查看防火墙状态systemctl stop firewalld.service # 停止防火墙systemctl ...

  2. 20180322 对DataTable里面的数据进行去重

    对DataTable里面的数据进行去重 DataTable dt = new DataTable(); dt.Columns.Add("Id", typeof(int)); dt. ...

  3. 003-linux命令-文件和目录、查看文件内容-文本处理

    文本处理 cat file1|command(sed,grep,awk,) > result.txt 合并一个文件的详细说明文本,并将简介写入一个新文件中 cat file1|command(s ...

  4. chkdsk 命令对Raid盘检测和查错、修复

    C:\Documents and Settings\Administrator>chkdsk /?检查磁盘并显示状态报告. CHKDSK [volume[[path]filename]]] [/ ...

  5. xshell帮助

    查看内置命令 $help Internal Commands:new: Creates a new session.open: Opens a session or the session dialo ...

  6. Day7 初识面向对象,面向对象之继承、多态和封装

    一.面向对象引言 一.面向对象的程序设计的由来 详述见:http://www.cnblogs.com/linhaifeng/articles/6428835.html 二.面向对象引子 写一个简单程序 ...

  7. 2018-2019-1 20189221 《Linux内核原理与分析》第八周作业

    2018-2019-1 20189221 <Linux内核原理与分析>第八周作业 实验七 编译链接过程 gcc –e –o hello.cpp hello.c / gcc -x cpp-o ...

  8. node代码打包为 exe文件---端口进程关闭demo

    最近用到 java,用tomcat起的服务,经常服务关了,对应的进程还在跑,导致再次启动服务失败,需要手动关闭进程. 使用 dos命令虽然只有两行,总是输,也很烦. netstat -ano | fi ...

  9. MySQL--5子查询与连接小结

    子查询:出现在其他sql语句中的 SELECT,必须出现在小括号内,子查询外层可以是常见的SELECT语句,INSERT语句 UPDATE语句 DELETE语句,在子查询中可以包含多个关键字和条件 ( ...

  10. rosetta mpi error: protocols.jobdist.JobDistributors:(0)Master Node -- Waiting for job request:tag=1

    很简单,因为使用了mpi编译版本的rosetta,却只给它分配了一个线程,然后这个线程用于分配任务,就没有线程跑任务,所以就freeze了