MindSpore兩日訓練營第六期總結

      網友投稿 827 2022-05-29

      MindSpore兩日訓練營第六期內容

      MindSpore第六期主要有以下內容組成

      MindSpore AI科學計算

      MOE異構并行

      MindSpore Boost

      可視化集群調優

      MindSpore控制流

      MindSpore Lite 1.5

      六個內容都是圍繞MindSpore最新的1.5版本的新特性進行介紹,也是通過課程了解新功能的一個不錯的方法。在每個課程的最后都有兩個作業,一個簡單的和一個稍難一點的。

      課程回放可以在MindSpore官方B站找到

      地址:https://space.bilibili.com/526894060

      課程作業環境

      采用華為云ECS,新加坡區的GPU加速服務器進行實驗。因為課程內容需要涉及到GPU,MindSpore目前還不支持windows平臺的GPU,所以就只能使用ECS來完成實驗體驗了。另外考慮到有時候會使用GITHUB下載軟件包,所以就想到了采用香港區或者新加坡區的ECS,這樣下載GITHUB的時候速度就不是問題了。

      整體環境如下截圖:

      實驗過程中遇到的一些問題

      MindSpore AI科學計算

      安裝的話參考文檔中的安裝指南基本都能正常安裝。

      MindScience文檔地址:https://www.mindspore.cn/mindscience/docs/zh-CN/r0.1/index.html

      MindScience(MindElec and MindSPONGE) 的安裝文件可以在https://mindspore.cn/versions 這個頁面中部的位置找到whl包的-

      數據驅動代碼:https://gitee.com/mindspore/mindscience/tree/master/MindElec/examples/data_driven/parameterization

      數據驅動只要執行運行命令的時候加上兩個參數:

      python train.py --device_target GPU --device_num 0

      然后就會開啟訓練,難度還是不難的,訓練完成后會生產ckpt文件和圖文件

      物理驅動的代碼地址:https://gitee.com/mindspore/mindscience/tree/master/MindElec/examples/physics_driven/time_domain_maxwell

      在GPU上可能會遇到一些問題,提示算子不支持之類的,需要將config.yaml文件中 coord_min和coord_max從原來的整數修改成浮點數。然后再去執行train.py應該就沒什么問題了。

      "coord_min" : [0.0, 0.0], "coord_max" : [1.0, 1.0],

      第一課的兩個作業總體來說不是很難,按照文檔基本都能完成。

      MindSpore 控制流

      課程作業是使用while和遞歸函數實現0-1000的累加,這個的話,參考文檔:https://www.mindspore.cn/docs/programming_guide/zh-CN/r1.5/control_flow.html

      把代碼邏輯加入到mindespore控制流的代碼框架即可

      參考代碼(不一定對):

      0-1000累加迭代:

      import numpy as np from mindspore import context from mindspore import Tensor, nn from mindspore import dtype as ms class IfInForNet(nn.Cell): def construct(self, x): if x == 1: return x else: return x + construct(x-1) forward_net = IfInForNet() x = Tensor(np.array(1000), dtype=ms.int32) output = forward_net(x) print("result:",output)

      0-1000累加(while循環實現):

      import numpy as np from mindspore import context from mindspore import Tensor, nn from mindspore import dtype as ms class IfInWhileNet(nn.Cell): def construct(self, x,y,out): while x!=1000: x = x + y out = out +x return out forward_net = IfInWhileNet() x = Tensor(np.array(0), dtype=ms.int32) y = Tensor(np.array(1),dtype=ms.int32) out = Tensor(np.array(0),dtype=ms.int32) output = forward_net(x,y,out) print("result:",output)

      MindSpore Lite

      MindSpore Lite目前我只做了第二個作業,基本上也是跟著課程PPT就能完成操作了

      準備工作

      下載模型。在mindspore 的model_zoo中下載MobileNetV2.mindir模型。地址如下: https://download.mindspore.cn/model_zoo/official/lite/mobilenetv2_openimage_lite/1.5/mobilenetv2.mindir

      下載CPU的Ubuntu-x64版本包,用來模型轉換。-如下: https://www.mindspore.cn/lite/docs/zh-CN/r1.5/use/downloads.html

      作業

      使用Ubuntu-x64版本包內的轉換工具,使用固定比特量化以及混合比特量化的配置文件,分析不同量化參數下對模型大小的影響:

      https://www.mindspore.cn/lite/docs/zh-CN/r1.5/use/post_training_quantization.html

      固定比特權重量化:

      ./converter_lite --modelFile=mobilenetv2.mindir --outputFile=mobilenetv2 --fmk=MINDIR --configFile=/mindspore/lite/tools/converter/quantizer/config/fixed_bit_weight_quant.cfg

      混合比特權重量化:

      ./converter_lite --modelFile=mobilenetv2.mindir --outputFile=mobilenetv2 --fmk=MINDIR --configFile=/mindspore/lite/tools/converter/quantizer/config/mixed_bit_weight_quant.cfg

      將轉換后的模型使用Ubuntu-x64版本包內的benchmark工具進行推理

      https://www.mindspore.cn/lite/docs/zh-CN/r1.5/use/benchmark_tool.html

      整個作業有兩個提示:可以把下載下來的tools中converter_lite執行文件和benchmark的w執行文件路徑添加到PATH環境變量中這樣就可以直接執行converter_lite 或者benchmark。

      另外就是需要把converter的lib目錄添加到LD_LIBRARY_PATH環境變量中,不然可能存在找不到so文件的報錯。

      MindSpore并行使能大模型訓練

      MindSpore兩日訓練營第六期總結

      MOE這一塊的話可能稍微肥一點時間,主要還是編譯MindSpore比較耗時,這里如果使用新加坡或者香港的服務器的話可能會稍微輕松一點。

      國內的服務器的話可能需要把文件一個一個wget下來然后拷貝到對應的目錄,然后再不斷重啟訓練。還有一個辦法就是查找hosts然后進行修改加速github的訪問。

      總體流程

      利用命令編譯:./build.sh -t on;通過pytest運行測試用例test_parallel_moe.py::test_transformer_model (路徑:mindspore/tests/ut/python/parallel/test_parallel_moe.py);

      提示需要把 mindspore/tests/ut/python配置到環境變量PYTHONPATH里

      需要生成圖ir文件,需要在test_parallel_moe.py代碼中添加

      from mindspore import context context.set_context(save_graphs=True)

      然后執行成功后會有一個rank_0的文件夾,在這里面就有需要的ir文件(xx_validate_.ir )

      5.MindSpore Boost

      Boost的作業可能resnet50cifar10對于GPU算子還有不支持的情況所以可能會遇到報錯。

      修改思路:

      model = Model(net,loss_fn=loss_fn,optimizer=opt,loss_scale_manager=loss_scale,amp_level="O3" ,boost_level="O1")

      在Model中添加boost_level="",制定boost_level級別。可以是O1,O2

      6.MindInsight可視化集群調優

      操作步驟:

      步驟:

      conda create -n myenv python=3.7 conda activate myenv pip install https://ms-release.obs.cn-north-4.myhuaweicloud.com/1.5.0/MindInsight/any/mindinsight-1.5.0-py3-none-any.whl mkdir homework mv /path/to/211105prof.tar.gz homework/ cd homework tar -zxvf 211105prof.tar.gz mindinsight start

      在瀏覽器中打開 http://127.0.0.1:8080,這里可能需要使用linux的瀏覽器打開。如果是使用ECS的話,建議安裝一個瀏覽器在遠程服務器里,然后使用對應的例如firefox之類的命令遠程啟動瀏覽器。

      還有一個辦法就是修改mindinsight/conf/constants.py文件中

      HOST = '127.0.0.1'

      這一行的IP地址修改為0.0.0.0,然后就可以使用本地計算機的windows瀏覽器進行訪問了。

      總結

      通過兩天六個課程的學習,對于MindSpore的新特性有了理論上的了解,隨后通過課程結束的兩個作業對于新特性的實際操作也進行了一個了解。實現了通過實踐操作了解特性。課程作業的難度其實有簡單,但是基本上每個作業的第一題都可以參考對應的文檔就可以很順利的完成了。至于難一點的那題稍微思考一下其實應該也沒什么大問題。

      MindSpore 機器學習

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:【軟件工具使用】LaTex工具TeX Live 下載、安裝及使用
      下一篇:怎么應對由于HSS策略造成的ECS內部異常?
      相關文章
      国产亚洲sss在线播放| 无码乱人伦一区二区亚洲| 国产成人麻豆亚洲综合无码精品| 亚洲成AV人影片在线观看| 亚洲AV无码一区二区三区人| 亚洲精品91在线| 老司机亚洲精品影院| 亚洲日本一区二区三区| 久久久久久亚洲AV无码专区| 亚洲最新视频在线观看| 亚洲日本香蕉视频| 亚洲中文字幕久在线| 亚洲国产乱码最新视频| 亚洲日产乱码一二三区别| 亚洲色欲色欱wwW在线| 亚洲AV日韩AV无码污污网站 | 亚洲日韩一区精品射精| 亚洲熟妇丰满xxxxx| 亚洲国产成人手机在线观看 | 久久精品亚洲综合专区| 18亚洲男同志videos网站| 亚洲国产成人久久99精品| 色噜噜亚洲男人的天堂| 亚洲日韩看片无码电影| 成人婷婷网色偷偷亚洲男人的天堂 | 亚洲av永久无码嘿嘿嘿| 国产色在线|亚洲| 亚洲AV无码成人精品区日韩 | 亚洲精品第一国产综合精品99| 国产成人精品久久亚洲| 国产亚洲精品资源在线26u| 久久青草亚洲AV无码麻豆| 久久综合亚洲色HEZYO社区 | 亚洲国产精品专区| 亚洲中文无码永久免| 国产午夜亚洲精品不卡| 亚洲综合网站色欲色欲| 亚洲一区免费观看| 亚洲中文字幕日本无线码| 亚洲AV蜜桃永久无码精品| 亚洲人成图片小说网站|