浏览器中的深度学习框架:Paddle.js 1.0

Paddle.js是百度Paddle的web方向子项目,是一个运行在浏览器中的开源深度学习框架。Paddle.js可以加载提前训练好的paddle模型,或者将paddle hub中的模型通过paddle.js的模型转换工具变成浏览器友好的模型进行在线推理预测使用。目前,paddle.js仅可以在支持webGL的浏览器中运行。

主要特点

模块化

Paddle.js项目基于Atom系统构建,该系统是一个通用框架,可支持WebGL上的GPGPU操作。 它非常模块化,可以通过利用WebGL来更快地执行计算任务。

浏览器覆盖范围

  • PC: Chrome, firefox
  • Mac: Chrome, Safari
  • Android: Baidu App , UC, Chrome and QQ Browser

支持的操作

目前,Paddle.js只支持有限的一组算子操作。如果模型中使用了不支持的操作,那么padde.js将运行失败并提示模型中有哪些op算子目前还不支持。

加载和运行模型

如果原始模型是浏览器友好的model格式, 使用 paddle.load()接在模型。

import {runner as Paddlejs} from 'paddlejs';

const paddlejs = new Paddlejs({
        modelPath: 'model/mobilenetv2', // model path
        fileCount: 4, // model data file count
        feedShape: {  // input shape
            fw: 256,
            fh: 256
        },
        fetchShape: [1, 1, 1920, 10],  // output shape
        fill: '#fff',   // fill color when resize image
        needBatch: true, // whether need to complete the shape to 4 dimension
        inputType: 'image' // whether is image or video
    });

// load paddlejs model and preheat
await paddlejs.loadModel();

// run model
await paddlejs.predict(img, postProcess);

function postProcee(data) {
    // data为预测结果
    console.log(data);
}

对于前输入处理的有关详细信息,请参阅feed文档。

对于得到结果后输出处理的有关详细信息,请参阅fetch文档。

运行Paddle.js提供的转换器脚本

模型转换器需要输入一个Paddle格式的model,可以是Paddle Hub中的model,运行转换器将会得到paddle.js的JSON格式model。

Web友好的model格式

上面的转换脚本生成两种类型的文件:

  • model.json (数据流图和权重清单文件)
  • group1-shard*of* (二进制权重文件的集合)

更新内容:

兼容性

  • 支持在 webGL2.0 和 webGL1.0 的浏览器上运行。例如 chrome、firefox、safari 以及移动端的 Baidu App、QQ 浏览器等。
  • 支持 NCHW 与 NHWC 格式的模型数据计算。

功能

  • 开发者可以通过 Paddle.js 将训练好的深度学习模型部署在浏览器上。通过 WebGL,Paddle.js 能够利用用户端设备的 gpu 进行加速运算,无需与服务器端进行交互,完成快速、安全的模型预测。
  • Paddle.js 可以对图像等多媒体数据进行处理,将 web 多媒体标签内容处理成在线推理引擎需要的输入数据。
  • 模型转换工具可以将 Paddle.fluid 模型转换为 Paddle.js 支持的模型,并且集成了包括算子融合等模型优化的处理方法。查看转换工具使用方法
  • 对基础的算子提供了支持,未来会继续补充支持更多的算子。查看支持的 op 列表
  • 提供 MobilenetV2、TinyYoloV3、人像分割、黄反暴恐检测和手势检测等模型的 demo。查看演示
  • 支持预热和多次执行在线推理,并且进行了执行资源复用等性能方面的实现。
  • 支持多模型串执行在线推理。

更新说明:https://github.com/PaddlePaddle/Paddle.js/releases/tag/v1.0

下载地址:

https://github.com/PaddlePaddle/Paddle.js

给TA打赏
共{{data.count}}人
人已打赏
建站源码开源资讯

基于 PHP 的自建网盘:ownCloud 2.6.3

2020-7-2 9:25:45

企业应用开源资讯

分布式实时计算:Apache Storm 2.2.0

2020-7-3 10:07:31

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索