?
重庆时时彩开奖结果,时时彩自动投注平台,大乐透投注技巧书籍,大地网赚论坛 凤凰彩票

开源 浏览器上最快的DNN执行框架WebDNN:从基本特

时间:2017-10-01 19:16来源:未知 作者:admin 点击:
WebDNN 是网页浏览器中最快的 DNN 执行框架,而本文首先简单介绍了 WebDNN 特征与其框架结构,即表明了为什么 WebDNN 能为端用户提供高效的 DNN 应用。而后文章将给出 WebDNN 与 Keras.js 的详

  WebDNN 是网页浏览器中最快的 DNN 执行框架,而本文首先简单介绍了 WebDNN 特征与其框架结构,即表明了为什么 WebDNN 能为端用户提供高效的 DNN 应用。而后文章将给出 WebDNN 与 Keras.js 的详细对比,并在最后一部分介绍 WebDNN 的安装环境与步骤。

  最近,深度神经网络(DNN)在很多领域吸引了大量的关注,比如图像和视频识别、自然语言处理和游戏 AI 等。很多这些领域的产品都应用了 DNN。然而,DNN 计算成本很高,而且其执行也普遍需要硬件加速。所以在终端用户设备比如笔记本电脑或智能手机上执行 DNN 也变得不现实。

  解决这个问题的其中一条方案是云计算。而 WebDNN,作为另一条解决方案,高度优化了 DNN 模型,令其可在终端用户设备的网页浏览器上运行它们。

  WebDNN 能在网页浏览器上执行 DNN 模型。通常来讲,网页浏览器是已经在终端用户的设备上安装好了的,并且用户也熟悉如何使用它。因此,WebDNN 可以很方便地提供 DNN 的应用,并且没有任何在本地安装应用程序的困难。一些主流网页浏览器的一系列不同特点可以被用于加速,WebDNN 在不同浏览器上保持尽可能以一样速度执行 DNN 模型的策略。

  Java 是一门标准的在网页上运行的编程语言,其通过一个解释器(interpreter)执行。因此,它需要计算开销(overhead),而且它不能完全利用 CPU 的能力,同样的问题在 GPU 中也存在。现代网页浏览器支持 WebGL,即一个使用 GPU 的 Java API。然而,该 API 的设计是用于图像处理而非适用于通用目的计算。此外,将 WebGL 用于通用目的计算会引发 overhead cost。

  为实现更快速的执行速度,优化 DNN 模型的计算图(graph)就显得非常重要。DNN 的执行由两阶段组成:训练阶段和推理阶段。这两个阶段分别需要不同的优化方法。WebDNN 仅专注于终端用户设备上推理阶段的执行,并且它支持复杂的优化。这种优化可以应用在用由大量 DNN 框架训练的模型上。用户不需要编辑训练代码便可实现。

  WebDNN 由两个模块组成,即图形转译器(graph transpiler)和描述符运行器(deor runner)。图形转译器能转译和优化模型使其成为在浏览器中可执行的格式,而描述符运行器则在浏览器中执行并转换模型。

  图形转译器(Graph transpiler)是一种离线转换模型的模块,它在 Python(版本 3.6)中实现,并只有软件开发者需要运行它。该模块会产生「graph deor」文件,这个文件由 Java 和二进制权数据组成。描述符运行器(Deor runner)是一个在线模块,其在终端用户的浏览器运行图形描述符(graph deor),该模块是 Java 文件。软件开发者需要使用由软件库提供的 API 来支持模型的输入和显示输出。

  安装应用开发环境在本文的最后一部分给出,其中还有一些从 Caffe、Keras、Chainer 等转换模型的案例。

  我们前面已经了解到 DNN 的应用需要巨大的计算资源,WebDNN 可以解决这个问题,方法是将网页浏览器作为免安装的 DNN 执行框架。该框架可以优化训练后的 DNN 模型,将模型数据进行压缩,从而加快执行速度。此外,该框架使用如 WebAssembly 和 WebGPU 等全新 Java API 以实现零开销执行(zero-overhead execution)。实验结果显示,这种方法实现了超过 200 倍的加速。

  如果你并没有这样的环境,就可以使用 WebAssembly 后端,基本上所有的现代浏览器都支持它。注意:IE 和 Safari 并不支持 WebAssembly,但是 asm.js 代码可以和 WebAssembly 代码一起自动生成,并且有相似的性能。

  如果你希望启用 WebAssembly 后端,那么就需要 Emen 的 emm++命令。如果你只希望尝试 WebGPU 后端,那么可以跳过这一节。

  更多有关GMIS 2017大会的内容,请点击「阅读原文」查看机器之心官网 GMIS 专题↓↓↓返回搜狐,查看更多

(责任编辑:admin)
顶一?
(0)
0%
踩一?
(0)
0%
------分隔?----------------------------
?