【TensorFlow】01 TensorFlow簡介與Python基礎
986
2025-04-01
MindSpore作為一個不斷深入地讓開發者學習的國產深度學習框架,一直在推陳出新。
在1.1版本的時候,張小白曾經參加了當時的【1.23-1.24 | MindSpore第五期兩日集訓營】,并寫出了以下博客:
張小白帶你體驗MindSpore 1.1的新特性:PyNative模式
https://bbs.huaweicloud.com/blogs/242300
張小白帶你體驗MindSpore 1.1的新特性:單節點緩存Cache(1)CPU環境下的Cache體驗
https://bbs.huaweicloud.com/blogs/242306
張小白帶你體驗MindSpore 1.1的新特性:單節點緩存Cache(2)GPU環境下的Cache體驗
https://bbs.huaweicloud.com/blogs/242307
張小白帶你體驗MindSpore 1.1的新特性:MindSpore Lite端側推理的另類實現
https://bbs.huaweicloud.com/blogs/242317
沒想到僅僅過了2個小版本號,MindSpore 就不僅支持端側推理,而且支持端側訓練了。
根據 https://bbs.huaweicloud.com/forum/thread-141383-1-1.html 的介紹:
MindSpore Lite端在手機或IoT上,可以支持對訓練導出的模型進行增量訓練。它采用了 訓練內存復用、virtual batch、混合精度訓練(名字好熟,好像在CANN訓練營第一期的模型營提到過)、在線融合、量化等手段。
具體的端側訓練流程是:
基于MindSpore構建訓練模型,并導出MindIR模型文件。
使用MindSpore Lite Converter工具,將MindIR模型轉為端側MS模型。
調用MindSpore Lite訓練API,加載端側MS模型,執行訓練。
就讓張小白拿著 https://gitee.com/mindspore/docs/blob/r1.3/docs/lite/docs/source_zh_cn/quick_start/train_lenet.md 這份文檔,帶著你一起體驗一下這個新特性吧。
根據文檔要求,需要準備ubuntu 18.04的環境。這里張小白準備了以前安裝MindSpore 1.1版本用過的VMWare 虛擬機。
(1)下載MNIST數據集
MNIST數據集下載了很多次,就連正在進行中的 昇騰CANN訓練營第二期中也用到了多次。張小白就把這次訓練營在Windows中使用的數據集使用XFTP工具上傳到 ~/mindspore1.3目錄下:
(2)下載MindSpore 1.3分支的代碼倉
(3)下載MindSpore Lite
wget https://ms-release.obs.cn-north-4.myhuaweicloud.com/1.3.0-lite/MindSpore/lite/release/linux/mindspore-lite-1.3.0-linux-x64.tar.gz
wget https://ms-release.obs.cn-north-4.myhuaweicloud.com/1.3.0-lite/MindSpore/lite/release/android/gpu/mindspore-lite-1.3.0-android-aarch64.tar.gz
(4)建立output目錄,并將Lite拷貝到output目錄下
(注意下圖中的路徑)
(5)安裝ADB
(6)安裝MindSpore 1.3 for ubuntu (CPU)
先升級pip
打開 https://www.mindspore.cn/install/
按照以下方式選擇:
執行安裝
pip install https://ms-release.obs.cn-north-4.myhuaweicloud.com/1.3.0/MindSpore/cpu/x86_64/mindspore-1.3.0-cp37-cp37m-linux_x86_64.whl --trusted-host ms-release.obs.cn-north-4.myhuaweicloud.com -i https://pypi.tuna.tsinghua.edu.cn/simple
檢查版本:
這里如果出現 libgmpxx.so.4打不開的錯
可先確認是否安裝了gmp-6.1.2 (gmp-6.1.2的下載鏈接 https://gmplib.org/download/gmp/gmp-6.1.2.tar.xz )
可參考 https://bbs.huaweicloud.com/blogs/198349 Part Two的方式,按照gmp-5.0.1同樣的方式安裝 gmp-6.1.2.
如果安裝了gmp-6.1.2后仍然報錯,可執行 sudo apt install libgmpxx4ldbl
(7)安裝Android NDK r20b
按官網?https://www.mindspore.cn/lite/docs/zh-CN/master/use/build.html 要求,需要安裝Android NDK r20b以上版本。
(如果不安裝這個版本,在后續的訓練時,可能會出現clang++找不到,std++17編譯參數不支持,找不到tuple等各種奇怪的編譯錯誤)
下載:
解壓:
設置環境變量 .bashrc
使環境變量生效
source .bashrc
驗證Android NDK安裝:
ndk-build
(8)進行本地訓練:
進入 mindspore/lite/examples/train_lenet目錄:
bash prepare_and_run.sh -D /home/ascend/mindspore1.3/MNIST_Data -t x86
。。。
。。。
(9)連接手機:
張小白將榮耀30手機使用Type-C線與筆記本電腦相連,并打開USB調試開關:
(設置-》系統和更新-》開發人員選項)
查看USB狀態:(箭頭所指的華為就是榮耀30手機——當時華為和榮耀還沒分家。。。)
(10)端側訓練:
執行 bash prepare_and_run.sh -D /PATH/MNIST_Data -t arm64
由于目前端側訓練不支持NPU,雖然上面報了找不到hiai_ddk的錯,也不用去官網下載ddk,而是需要編輯 prepare_and_run.sh文件,注釋掉處理hiai_ddk的部分:
重新執行訓練:
bash prepare_and_run.sh -D /home/ascend/mindspore1.3/MNIST_Data -t arm64
。。。
其實看 prepare_and_run.sh中的帶有arm64參數執行的代碼部分,分別調用了 adb push, adb shell,就可以知道確實是在 ubuntu上遠程進行了訓練。
因為,如果張小白拔掉手機與筆記本電腦之間的USB線:
重新執行這個腳本,就會報以下的錯:(adb:找不到android設備或者android模擬器)
這真真正正地證明了確實是在手機上跑的訓練。
(全文完,謝謝閱讀)
C++ MindSpore 昇騰 深度學習 神經網絡
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。