精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

PaddlePaddle 移動端(一),在Android shell下運行PaddlePaddle

企業動態
這篇文章以Android shell下運行圖像分類模型為例子來講述如何入門PaddlePaddle移動端。

 我們可以在https://github.com/PaddlePaddle/Mobile/ 找到關于PaddlePaddle應用于移動端的demo和例子。這篇文章以Android shell下運行圖像分類模型為例子來講述如何入門PaddlePaddle移動端。

內容

  • PaddlePaddle訓練移動端的分類模型
  • 對PaddlePaddle進行Android 交叉編譯
  • Android shell 下運行分類模型

PaddlePaddle訓練移動端的分類模型

在Android shell下運行PaddlePaddle 模型,我們要準備一個適用于一個移動端的分類模型。Repo 下提供了適用于移動端的mobilenet模型,我們用這個模型來對花卉進行分類。
一,下載mobilenet配置文件

wget https://raw.githubusercontent.com/PaddlePaddle/Mobile/develop/models/standard_network/mobilenet.py 

二,下載pre-trained 模型參數文件
在百度云上下載在imagenet上預訓練的mobilenet模型參數 imagenet_pretrained_mobilenet.tar.gz
三,在imagenet模型上對flower102數據集進行微調(fine-tune)
拷貝以下代碼,然后運行,會在每個epoch 后保存參數文件。可以點擊此處 下載好我已經訓練的模型參數。

import sys import gzip  from paddle.trainer_config_helpers import * import paddle.v2 as paddle from mobilenet import mobile_net  # batch 大小是40 BATCH = 40  def main():     datadim = 3 * 224 * 224     classdim = 102      #  采用gpu訓練并使用***塊卡     paddle.init(use_gpu=True, trainer_count=1, gpu_id=0)      momentum_optimizer = paddle.optimizer.Momentum(         momentum=0.9,         regularization=paddle.optimizer.L2Regularization(rate=0.0005 * BATCH),         learning_rate=0.001 / BATCH,         learning_rate_schedule='constant')      out = mobile_net(datadim, classdim, 1.0)      lbl = paddle.layer.data(         name="label", type=paddle.data_type.integer_value(classdim))     cost = paddle.layer.classification_cost(input=out, label=lbl)      # Create parameters     parameters = paddle.parameters.create(cost)     # 加載imagenet 預訓練的模型參數     with gzip.open('imagenet_pretrained_mobilenet.tar.gz', 'r') as f:         fparameters = paddle.parameters.Parameters.from_tar(f)     for param_name in fparameters.names():         if param_name in parameters.names():             parameters.set(param_name, fparameters.get(param_name))      # End batch and end pass event handler     def event_handler(event):         if isinstance(event, paddle.event.EndIteration):             if event.batch_id % 50 == 0:                 print "\nPass %d, Batch %d, Cost %f, %s" % (                     event.pass_id, event.batch_id, event.cost, event.metrics)             else:                 sys.stdout.write('.')                 sys.stdout.flush()         if isinstance(event, paddle.event.EndPass):             # save parameters             with gzip.open('pruning_mobilenet_params_pass_%d.tar.gz' %                            event.pass_id, 'w') as f:                 parameters.to_tar(f)              result = trainer.test(                 reader=paddle.batch(                     paddle.dataset.flowers.test(), batch_size=10),                 feeding={'image': 0,                          'label': 1})             print "\nTest with Pass %d, %s" % (event.pass_id, result.metrics)      # Create trainer     trainer = paddle.trainer.SGD(         cost=cost, parameters=parameters, update_equation=momentum_optimizer)     trainer.train(         reader=paddle.batch(             paddle.reader.shuffle(                 paddle.dataset.flowers.train(), buf_size=50000),             batch_size=BATCH),         num_passes=100,         event_handler=event_handler,         feeding={'image': 0,                  'label': 1})   if __name__ == '__main__':     main() 

經過微調我們的分類精度可以達到98% 左右。 現在我們有了一個.py 文件,表示模型的配置文件, 還有一個.tar.gz文件,表示模型的參數文件, 這兩個文件組成了***的一個模型。

Android 交叉編譯PaddlePaddle

我們需要讓PaddlePaddle運行在Android平臺,需要在linux或者mac下編譯出能在android或者ios平臺下運行的PaddlePaddle庫文件。這個過程為交叉編譯。

Paddle repo下提供了關于如何在android平臺下進行交叉編譯PaddlePaddle:
在鏈接相關頁面中提供了兩種方式, 一種是通過docker的方式,一種基于自定義獨立工具鏈編譯方式, 這兩種方式,我都進行了實驗,個人比較傾向于自定義的方式,因為比較直接透明。具體的使用方式如下:

一, 下載 Android NDK

wget -q https://dl.google.com/android/repository/android-ndk-r14b-linux-x86_64.zip unzip -q android-ndk-r14b-linux-x86_64.zip 

假設當前目錄為 $CURRENT_DIR

二, 自定義工具鏈(--install-dir 表示安裝路徑,根據自己的需求設置,假設安裝路徑為$TOOLCHAIN_PATH )

$CURRENT_DIR/android-ndk-r14b-linux-x86_64/build/tools/make-standalone-toolchain.sh \         --arch=arm --platform=android-21 --install-dir=$TOOLCHAIN_PATH/v7_standalone_toolchain 

$TOOLCHAIN_PATH/v7_standalone_toolchain目錄下的內容為我們剛剛生成的工具鏈。

三, 交叉編譯PaddlePaddle

git clone https://github.com/PaddlePaddle/Paddle.git  cd Paddle #  建立docker 鏡像 mkdir install  mkdir build  cd build  cmake -DCMAKE_SYSTEM_NAME=Android \       -DANDROID_STANDALONE_TOOLCHAIN=$TOOLCHAIN_PATH/v7_standalone_toolchain \       -DANDROID_ABI=armeabi-v7a \       -DANDROID_ARM_NEON=ON \       -DANDROID_ARM_MODE=ON \       -DUSE_EIGEN_FOR_BLAS=ON \       -DCMAKE_INSTALL_PREFIX=./install \       -DWITH_C_API=ON \       -DWITH_SWIG_PY=OFF \        -DANDROID_TOOLCHAIN=gcc  \       ..  make -j `nproc` make install  

編譯結束后,會在 install/lib 目錄下生成動態庫libpaddle_capi_shared.so, 這個動態庫提供了模型程序調用PaddlePaddle的所有入口。

Android shell 下運行分類模型

一, 下載預測程序
該程序功能是用來測試模型的運行速度,主要包括加載模型,隨機化輸入,多次進行模型前向運算并統計時間,然后輸出模型的平均前向運行時間。

wget https://raw.githubusercontent.com/PaddlePaddle/Mobile/develop/benchmark/tool/C/inference.cc 

二, 將libpaddle_capi_shared.so copy至當前目錄
三, 編譯預測腳本

export PATH=$TOOLCHAIN_PATH/v7_standalone_toolchain/bin/:$PATH arm-linux-androideabi-g++ inference.cc -L./ -lpaddle_capi_shared -o inference -pie -fPIE 

我們可以看到,目錄中多了一個inference 可運行的二進制文件。

四,將之前提到的模型配置文件.py 和模型參數文件.tar.gz融合成一個文件

from paddle.utils.merge_model import merge_v2_model  # import your network configuration from mobilenet import mobile_net  net = mobile_net(3*224*224, 102, 1.0) param_file = './mobilenet_flowers102.tar.gz' output_file = './mobilenet.paddle'  merge_v2_model(net, param_file, output_file) 

五,安裝adb
linux 安裝,查看教程
mac 安裝,查看教程

adb 工具可以登陸android 手機的shell,讓我們像使用linux shell一樣來操作android。
adb安裝之后,我們使用數據線將android手機和電腦鏈接。

六, Android shell下運行Paddle分類模型

adb push inference libpaddle_capi_shared.so mobilenet.paddle /sdcard/test_mobilenet adb shell cd /sdcard/test_mobilenet export LD_LIBRARY_PATH=./ ./inference --merged_model ./mobilenet.paddle --input_size 150528 

其中input_size 表示模型輸入的大小,即3 * 224 * 224 等于 150528
如果看到以下的log,說明程序運行成功:

可以看到,paddle初始化的時間是1.78015ms, 加載模型的時間是113.749ms, 模型前向的時間是337.754ms.

 

責任編輯:張燕妮 來源: 簡書
相關推薦

2018-01-26 14:29:01

框架

2018-01-21 14:11:22

人工智能PaddlePaddlTensorflow

2018-03-26 20:14:32

深度學習

2018-03-26 20:49:08

圖像分類

2018-04-04 10:19:32

深度學習

2018-04-02 10:45:11

深度學習PaddlePaddl手寫數字識別

2018-03-27 16:24:12

PaddlePaddl

2018-03-26 20:00:32

深度學習

2018-02-07 16:13:00

深度學習

2018-03-09 22:56:52

PaddlePaddl

2018-03-26 20:07:25

深度學習

2018-03-27 13:18:17

教程

2018-03-26 21:31:30

深度學習

2018-03-26 21:26:50

深度學習

2018-03-27 13:26:51

教程

2019-03-26 16:05:10

AI

2018-04-09 10:20:32

深度學習

2018-02-07 17:32:54

情感分析

2019-07-06 10:18:07

人工智能

2017-02-09 16:39:54

百度
點贊
收藏

51CTO技術棧公眾號

色爱av美腿丝袜综合粉嫩av| 欧美性色欧美a在线播放| 粉嫩高清一区二区三区精品视频 | 亚洲精品综合在线观看| 日本亚洲精品| 成人一区二区视频| 青草热久免费精品视频| 2017亚洲天堂| 豆花视频一区二区| 欧美中文字幕一区| 久久久久久久久久久综合| 色视频在线观看福利| 激情综合网激情| 57pao精品| 特一级黄色录像| 亚洲理论电影| 欧美一二三四区在线| 男人天堂网视频| 精品自拍一区| 国产丝袜欧美中文另类| **亚洲第一综合导航网站| 日本一区二区免费电影| 欧美黄色一区二区| 夜夜嗨av一区二区三区四区 | 久久久国产一区二区| 污污污www精品国产网站| 日本成人一区二区| 91国在线观看| 9久久9毛片又大又硬又粗| 麻豆网站在线免费观看| 久久综合网色—综合色88| 91精品国产自产在线老师啪| 最近免费中文字幕大全免费版视频| 欧美国产另类| 久久精品久久久久久| 一级片手机在线观看| 福利在线一区| 精品国产一二三| 性欧美在线视频| 99riav视频一区二区| 欧美日韩在线第一页| 欧美中日韩在线| 国产在线更新| 欧美高清在线视频| 日本欧洲国产一区二区| 欧美777四色影视在线| av网站一区二区三区| 91精品网站| 国产伦精品一区二区三区视频痴汉| 媚黑女一区二区| 97av在线视频| 国产尤物在线视频| 亚洲欧洲午夜| 97福利一区二区| 国产精品theporn动漫| 欧美日韩国产在线一区| 久久91精品国产91久久跳| 国产老头老太做爰视频| 久久久久国产精品| 久久五月天综合| 久久久久久久麻豆| 91精品秘密在线观看| 欧美成人激情图片网| 顶臀精品视频www| 欧美激情无毛| 国内偷自视频区视频综合| 国产网友自拍视频| 国产一区二区三区久久久久久久久| 欧美精品福利在线| 精品在线视频免费| 亚洲专区一区| 欧美在线视频网| 日本一本在线观看| 青椒成人免费视频| 91最新国产视频| 亚洲高清视频网站| av不卡一区二区三区| 久久久精品动漫| 国产精品久久久久一区二区国产 | 久久国产麻豆精品| 91久久精品美女高潮| 国产高潮在线观看| av中文一区二区三区| 日本一区视频在线| 免费在线视频欧美| 五月天国产精品| 99热手机在线| 精品视频在线观看免费观看 | 国产午夜视频在线观看| 国产精品久久久久天堂| 欧美日韩亚洲国产成人| 538在线视频| 欧美综合一区二区三区| 亚洲国产欧美91| 日韩高清电影免费| 最新亚洲国产精品| 国产系列精品av| 首页欧美精品中文字幕| 91免费视频国产| 香蕉视频成人在线| 中文字幕制服丝袜成人av| 亚洲色欲久久久综合网东京热| 日韩深夜视频| 91麻豆精品国产综合久久久久久 | 亚洲天天综合网| 国产91露脸合集magnet| 日韩理论片在线观看| 呦呦在线视频| 色婷婷久久一区二区三区麻豆| 亚洲综合123| 自拍视频一区| 欧美激情亚洲综合一区| 一区二区视频免费| 99riav久久精品riav| 一区二区三区欧美在线| 96av在线| 欧美一区二区三区公司| 91网站免费视频| 国产精品啊v在线| 国产日韩欧美日韩| 视频一区二区在线播放| 亚洲精品中文在线观看| 人人干人人视频| 国产主播性色av福利精品一区| 久久久久北条麻妃免费看| 激情视频网站在线观看| 不卡欧美aaaaa| 免费成人进口网站| 99re66热这里只有精品4| 亚洲国产精品va在线看黑人动漫| 亚洲色图27p| 石原莉奈一区二区三区在线观看| 国产一区不卡在线观看| 亚洲男同gay网站| 欧美日韩国产区一| 国产jk精品白丝av在线观看| 亚洲精选成人| www.久久久| 国产在线看片| 欧美精品xxxxbbbb| 丁香激情五月少妇| 久久亚洲美女| 欧美日韩高清免费| 中文字幕在线直播| 日韩经典中文字幕| 日本中文字幕网| 成人精品亚洲人成在线| 久久久久久久香蕉| 一区二区精彩视频| 欧美极品美女视频网站在线观看免费| av一区二区三| 亚洲欧美日韩国产另类专区| 色18美女社区| 婷婷六月综合| 91在线精品视频| www久久日com| 日韩三级电影网址| 久久机热这里只有精品| 成人午夜激情视频| 欧美 丝袜 自拍 制服 另类| 激情小说一区| 欧美亚洲第一页| 精品999视频| 欧美影视一区在线| 波多野结衣欲乱| 国产一区二区三区免费观看| 日韩精品免费一区| 精品综合久久88少妇激情| 91精品国产99久久久久久| 深夜福利在线观看直播| 色综合久久综合中文综合网| аⅴ天堂中文在线网| 看国产成人h片视频| 大地资源第二页在线观看高清版| 日本99精品| 国语对白做受69| 飘雪影视在线观看免费观看 | 久久精品亚洲乱码伦伦中文| 成年人在线观看视频免费| 青青草国产免费一区二区下载| 91精品久久久久久久久久入口| 污网站在线免费看| 精品香蕉一区二区三区| 久久午夜鲁丝片| 亚洲欧美电影院| 91黄色免费视频| 秋霞影院一区二区| 日韩精品第1页| 四虎5151久久欧美毛片| 国产精品专区第二| 激情av在线| 亚洲偷欧美偷国内偷| 97人人爽人人爽人人爽| 亚洲成av人片一区二区三区| 黄色片网站免费| 国产精品综合二区| 欧美v在线观看| 亚洲精品成人影院| 久久资源av| 精品国产亚洲一区二区在线观看 | 国产高清av在线播放| 久久91精品| 999久久久| 国产超碰精品| 九九精品在线观看| 国产色a在线| 亚洲第一二三四五区| 国产真人无遮挡作爱免费视频| 亚洲精品成a人| 国产黄色录像视频| www.欧美亚洲| 91人妻一区二区三区| 日本三级亚洲精品| 免费在线观看亚洲视频| 欧美+亚洲+精品+三区| 少妇免费毛片久久久久久久久| 超碰97成人| 91久久久久久久久久久久久| 自拍偷拍欧美视频| 久久久久国产精品免费网站| 日本三级视频在线播放| 亚洲欧美中文另类| 少妇高潮一区二区三区99小说| 88在线观看91蜜桃国自产| 波多野结衣视频免费观看| 亚洲成人资源在线| 国产这里有精品| 中文字幕亚洲成人| 国产午夜精品福利视频| 久久人人爽爽爽人久久久| av av在线| 国产电影一区二区三区| 午夜视频在线网站| 麻豆传媒一区二区三区| 国内自拍视频一区| 午夜影院日韩| 久久免费视频3| 亚洲欧洲一区| 大陆av在线播放| 欧美久久视频| 91亚洲精品国产| 综合在线一区| 日韩成人午夜影院| 欧美一区二区三区另类| 正义之心1992免费观看全集完整版| 欧美日韩国产一区二区三区不卡| 免费影院在线观看一区| 一本色道久久综合亚洲精品酒店 | 国产精品久久久久久久久久久新郎 | 国产精品毛片久久久久久久| 精品人妻一区二区三区四区| 国产亚洲精品aa| 亚洲无人区码一码二码三码的含义| 久久―日本道色综合久久| 舐め犯し波多野结衣在线观看| 久久久精品天堂| 欧洲美熟女乱又伦| 国产精品久久久精品四季影院| 国产精品一区二区果冻传媒| 欧美一级免费在线| 国产高清无密码一区二区三区| 亚洲欧美激情一区二区三区| 懂色av中文字幕一区二区三区| 日本精品一二三| 9久草视频在线视频精品| 中文字幕无码人妻少妇免费| 91视视频在线直接观看在线看网页在线看| 中文字幕 亚洲一区| 久久久精品蜜桃| 亚洲色图27p| 亚洲图片欧美综合| 韩国av中文字幕| 欧美视频精品在线| 国产成人三级一区二区在线观看一| 欧美成va人片在线观看| 视频国产一区二区三区| 在线观看中文字幕亚洲| 1区2区3区在线视频| 久久久久成人网| 日韩精品影院| 亚洲伊人成综合成人网| 老司机凹凸av亚洲导航| 日韩高清国产一区在线观看| 91精品精品| 国产日韩一区二区在线| 另类小说一区二区三区| 免费啪视频在线观看| 91免费观看国产| 欧美特级一级片| 高跟丝袜欧美一区| 国产乱码精品一区二区| 精品五月天久久| 国产黄a三级三级三级av在线看| 国内精品久久久久| jizz久久久久久| 国产精品一区免费观看| 日韩亚洲一区在线| 欧美啪啪免费视频| 韩国一区二区在线观看| 久久国产精品影院| 亚洲日本韩国一区| 精产国品一区二区| 精品久久久久久久一区二区蜜臀| 精品999视频| 韩国日本不卡在线| 国产精品麻豆| 日本一区二区三区视频在线播放 | 91精品丝袜国产高跟在线| 日韩av电影免费观看| 激情综合自拍| 亚洲xxx在线观看| 久久久精品免费网站| 国产成人精品亚洲男人的天堂| 欧美人狂配大交3d怪物一区| 欧美女子与性| 97精品国产aⅴ7777| 久久影院一区二区三区| 天堂va久久久噜噜噜久久va| 在线综合欧美| 人妖粗暴刺激videos呻吟| 亚洲欧洲99久久| 伊人成年综合网| 日韩精品在线视频| 美女网站视频在线| 91久久大香伊蕉在人线| 久久亚洲国产| 一道本视频在线观看| 久久久精品综合| 天堂在线免费观看视频| 精品sm在线观看| 国产91足控脚交在线观看| 亚洲自拍在线观看| 午夜精品久久久久久久四虎美女版| 日韩在线第三页| 国产亚洲精品精华液| 日韩黄色片网站| 亚洲三级av在线| 桃子视频成人app| 久久综合九色99| 性一交一乱一区二区洋洋av| 白嫩情侣偷拍呻吟刺激| 亚洲影视在线播放| 亚洲国产www| 欧美激情一区二区久久久| 97久久亚洲| 国产欧美日韩小视频| 成人美女在线视频| 99热在线观看免费精品| 亚洲激情视频在线播放| 免费成人在线电影| 欧美乱偷一区二区三区在线| 麻豆久久精品| 国产精品天天干| 欧美主播一区二区三区美女| 天堂中文8资源在线8| 亚洲直播在线一区| 国产精品mv在线观看| 黄色免费看视频| 色综合中文字幕国产| 超碰免费在线观看| 国产一区红桃视频| 欧美高清一区| 亚洲精品女人久久久| 色88888久久久久久影院野外| www.av在线播放| 成人免费视频97| 欧美私人啪啪vps| 亚洲一区二区三区四区五区六区| 色婷婷精品大视频在线蜜桃视频| 成人午夜在线观看视频| 成人乱人伦精品视频在线观看| 欧美成人午夜| 亚洲精品在线视频免费观看| 色婷婷国产精品| 日本激情在线观看| 97免费高清电视剧观看| 日韩一级精品| 日本不卡一区视频| 日韩欧美高清一区| 亚洲精品**中文毛片| 亚洲激情电影在线| 国产99久久精品| 欧美日韩 一区二区三区| 久久久www成人免费精品| 136导航精品福利| 国产极品美女高潮无套久久久| 亚洲国产精品高清| 亚洲乱色熟女一区二区三区| 全亚洲最色的网站在线观看| 天天射天天综合网| 精品国产一区在线| 欧美日韩国产一区| av资源在线播放| 一道精品一区二区三区| 成人av午夜电影| 在线观看免费视频一区| 欧美激情中文字幕在线| 日韩黄色大片| 给我看免费高清在线观看| 欧美一区二区三区精品|