Paddle.js瀏覽器中的深度學習框架
Paddle.js是百度Paddle的web方向子項目,是一個運行在瀏覽器中的開源深度學習框架。Paddle.js可以加載提前訓練好的paddle模型,或者將paddle hub中的模型通過paddle.js的模型轉(zhuǎn)換工具變成瀏覽器友好的模型進行在線推理預測使用。目前,paddle.js僅可以在支持webGL的瀏覽器中運行。
## CPU版本安裝命令
pip install -f https://paddlepaddle.org.cn/pip/oschina/cpu paddlepaddle
## GPU版本安裝命令
pip install -f https://paddlepaddle.org.cn/pip/oschina/gpu paddlepaddle-gpu
主要特點
模塊化
Paddle.js項目基于Atom系統(tǒng)構建,該系統(tǒng)是一個通用框架,可支持WebGL上的GPGPU操作。 它非常模塊化,可以通過利用WebGL來更快地執(zhí)行計算任務。
瀏覽器覆蓋范圍
- 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為預測結(jié)果
console.log(data);
}
對于前輸入處理的有關詳細信息,請參閱feed文檔。
對于得到結(jié)果后輸出處理的有關詳細信息,請參閱fetch文檔。
運行Paddle.js提供的轉(zhuǎn)換器腳本
模型轉(zhuǎn)換器需要輸入一個Paddle格式的model,可以是Paddle Hub中的model,運行轉(zhuǎn)換器將會得到paddle.js的JSON格式model。
Web友好的model格式
上面的轉(zhuǎn)換腳本生成兩種類型的文件:
- model.json (數(shù)據(jù)流圖和權重清單文件)
- group1-shard*of* (二進制權重文件的集合)
評論
圖片
表情
