樹莓派上使用paddle預訓練模型

樹莓派安裝paddlelite; x86電腦上安裝paddlehub,並將paddlehub中的預訓練模型轉換爲paddlelite格式,使之能在樹莓派上運行。python

樹莓派編譯安裝paddlelite

sudo apt install patchelf cmake
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 150

git clone https://github.com/PaddlePaddle/Paddle-Lite.git
cd Paddle-Lite
sudo ./lite/tools/build.sh \
  --build_extra=ON \
  --arm_os=armlinux \
  --arm_abi=armv7hf \
  --arm_lang=gcc \
  --build_python=ON \
  full_publish

cd build.lite.armlinux.armv7hf.gcc/inference_lite_lib.armlinux.armv7hf/python/install
sudo python3 setup.py install

具體源碼編譯時的參數說明,你們可參考:https://paddlepaddle.github.io/Paddle-Lite/v2.2.0/source_compile/#本地編譯直接在rk3399或樹莓派上編譯linux

x86電腦上將paddlehub的預訓練模型轉爲paddlelite格式

安裝paddlehubpaddlepaddle

python -m pip install paddlehub
python -m pip install paddlepaddle

測試paddlehub預訓練模型

import paddlehub as hub

senta = hub.Module(name="senta_gru")
test_text = ["這家餐廳很好吃", "這部電影真的不好勁"]

results = senta.sentiment_classify(texts=test_text, use_gpu=False, batch_size=1)

for result in results:
    print(result['text'])
    print(result['sentiment_label'])
    print(result['sentiment_key'])
    print(result['positive_probs'])
    print(result['negative_probs'])

下載opt轉換工具

https://paddlepaddle.github.io/Paddle-Lite/v2.2.0/model_optimize_tool/git

下載paddlehub預訓練模型並轉換

下載預訓練模型壓縮包:github

hub download senta_gru

解壓,放置在 saved_models/senta_gru 下,shell

轉換模型:框架

./opt --model_dir=senta_gru/infer_model --valid_targets=arm --optimize_out_type=naive_buffer --optimize_out=saved_models/senta_gru

PS: 查看opt轉換工具所支持的模型算子:工具

./opt --print_model_ops=true --valid_targets=arm --model_dir=senta_gru/infer_model

在樹莓派上測試轉換後的預訓練模型

from paddlelite.lite import *

config = MobileConfig()
config.set_model_dir("model")

# (2) 建立predictor
predictor = create_paddle_predictor(config)
'''
......
'''

而後就出現段錯誤了。。。學習


後記

以後開始各類找緣由,也想到多是因爲漏轉換了什麼而致使的。。。測試

也反覆找了資料,但因爲paddle還還沒有穩定,甚至連官方網站裏的demo都已過期,接口都已變更得消失不見了。。。網站

因此最終只好暫時放棄。

可能 paddlepaddlepaddlehub ,做爲百度paddle框架的主力,迭代速度快、完成度也還行,屬於比較可用。但其餘的組件可能優先級就比較低了,文檔也不一樣步,實在是形成了很大的困擾。

畢竟已經佔用了一成天的時間了,還要抽空學習推薦系統,和完成個人與情預測股票項目,因此paddlelite項目就只能等百度paddle穩定了再啓動吧。

file

相關文章
相關標籤/搜索