基于昇騰CANN的推理應用開發--高清圖像修復(Python)的彈性云服務器(ECS)實現 丨【我的華為云體驗之旅】

      網友投稿 1064 2022-05-29

      先來介紹下,這是CANN體驗官第三期活動,那么有同學可能要問了,什么是CANN呢?先來張官方的圖展示:

      如果還是不理解,理解簡單理解為是華為為昇騰處理器打造的“CUDA”,最后給出活動鏈接:https://bbs.huaweicloud.com/forum/thread-164772-1-1.html

      說明:

      一定要做云資源申請:點擊鏈接:https://www.wjx.cn/vj/mbknBwc.aspx?可進行資源申請登記,審核后將會在2-3個工作日進行資源發放。

      最好先了解下活動任務一的基于昇騰CANN的推理應用開發--高清圖像修復(Python)實驗:https://www.hiascend.com/zh/college/onlineExperiment/detail/664601

      原始模型的測試代碼:https://github.com/Atlas200dk/sample-imageinpainting-HiFill/blob/master/GPU_CPU/test.py

      下面開始了,還記得在任務一時,基于昇騰CANN的推理應用開發--高清圖像修復(Python)實驗嗎? 實驗鏈接上面已給出。

      這次需要在自己的環境上真實復現上述實驗,通過實驗知道,就是部署模型到Ascend 310上,那如果沒有Ascend 310的設備呢?那申請ECS云資源券就起到作用了,可以來購買彈性云服務器來用,開源代碼在實驗中也給了鏈接,接下來分享一下流程吧。

      一、搭建自己的環境

      申請到代金券后,先購買彈性云服務器,搞個Ascend 310,購買的流程比較簡單,前人也總結了圖文并茂的介紹,我就不贅述了,這里附上前人的購買介紹鏈接:

      https://zhuanlan.zhihu.com/p/432673114

      需要注意的是,如果你是第一次購買,登錄后可能發現無法ping通,即無法訪問外網,這大概率時因為在配置彈性公網IP的時候出方向規則沒配置,可以參照如下方法配置,如果不行,可以直接提工單。

      https://bbs.huaweicloud.com/suggestion/detail/112907

      二、配置環境

      其實彈性云服務器默認配置環境(就是CANN)了,但是環境版本太老了,不支持本案例,在模型轉換階段就報錯了,所以要安裝新環境,直接上最新的吧。那這就遇到問題了,沒有文檔介紹如何配置,彈性云服務器的文檔僅做了介紹,讓到昇騰開發者社區,開發者社區的文檔有點亂,搞了半天也不行,這一點體驗不好,這文檔有點差勁。問題不大,找個在線課程看看吧,就是昇騰CANN系列教程-環境部署(計算加速型ECS)

      課程鏈接:https://education.huaweicloud.com/courses/course-v1:HuaweiX+CBUCNXA025+Self-paced/about

      但遺憾的是,這個課程用到的版本太老了,不過沒關系,只需要將提到的三個.run文件換成對應的新版本就行了,流程還是那樣的。整個流程有點復雜,簡化了一下,簡化后的流程如下:

      注意,講道理,要區分root和HwHiAiUser用戶安裝,但這太麻煩了,安裝環境還要來回切換用戶,這里直接選擇全root,即本文所有操作都在root下執行,所以注意點命令,確認下再執行,以免造成無可挽回的損失。

      1. 下載安裝包

      # 下載固件和驅動 wget https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/turing/resourcecenter/Software/AtlasI/A300-3010%201.0.12/A300-3010-npu-driver_21.0.3.1_linux-x86_64.run # 下載X86平臺推理引擎軟件包,適用于命令行方式安裝場景 wget https://ascend-repo.obs.cn-east-2.myhuaweicloud.com/CANN/5.0.4.alpha002/Ascend-cann-nnrt_5.0.4.alpha002_linux-x86_64.run # X86平臺開發套件軟件包,適用于命令行方式安裝場景 wget https://ascend-repo.obs.cn-east-2.myhuaweicloud.com/CANN/5.0.4.alpha002/Ascend-cann-toolkit_5.0.4.alpha002_linux-x86_64.run # 授予權限 chmod 777 A300-3010-npu-driver_21.0.3.1_linux-x86_64.run chmod 777 Ascend-cann-nnrt_5.0.4.alpha002_linux-x86_64.run chmod 777 Ascend-cann-toolkit_5.0.4.alpha002_linux-x86_64.run

      2. 執行安裝

      注意,安裝之前最好給系統和pip都換成國內源,因為要安裝一些依賴(在線課程中有介紹),換成國內源比較快,換源方法可以直接百度,在前面提到的在線課程中也有介紹。

      ./A300-3010-npu-driver_21.0.3.1_linux-x86_64.run --install

      要重啟以下哦,

      reboot

      之后注意要配置下環境變量

      vim ~/.bashrc

      找到如下三個環境變量,修改為如下:

      export LD_LIBRARY_PATH=/usr/local/python3.7.5/lib:/usr/local/Ascend/nnrt/latest/lib64:${LD_LIBRARY_PATH} export PYTHONPATH=/usr/local/Ascend/nnrt/latest/python/site-packages:${PYTHONPATH} export ASCEND_OPP_PATH=/usr/local/Ascend/nnrt/latest/opp:

      如圖所示:

      接著安裝:

      ./Ascend-cann-nnrt_5.0.4.alpha002_linux-x86_64.run --install ./Ascend-cann-toolkit_5.0.4.alpha002_linux-x86_64.run --install

      至此,應該就安裝好了,大體是這樣,具體請參看上面的在線課程,這三個安裝包的版本和視頻中不一樣,但是其他的基本一樣,按照流程搞就行了,話說這個ECS就不能直接給個最新配置的鏡像嗎?好像昇騰開發者社區提供了鏡像,但是試了下,沒成功,有點遺憾。

      三、運行程序

      因為實驗中使用了atlasutil,這是昇騰官方團隊自行封裝的一個庫,應該是為了方便Python開發,但是我看了下,這個庫僅供使用,不覆蓋所有場景,還是有限制的,快速驗證還是可以用的,ECS也能用。不過,配置安裝過程復雜。這里不用這個了,直接上官方原始的案例就行了。

      案例鏈接:https://gitee.com/ascend/samples/tree/master/python/level2_simple_inference/6_other/imageinpainting_hifill

      接下來就開始吧!

      0. 下載源碼

      git clone https://gitee.com/ascend/samples.git # 進入到本案例文件夾 cd samples/python/level2_simple_inference/6_other/imageinpainting_hifill

      1. 模型轉換

      # 獲取此應用中所需要的單算子Json文件和om模型文件。 wget https://c7xcode.obs.myhuaweicloud.com/models/imageinpainting_hifill/matmul_27648.json --no-check-certificate wget https://c7xcode.obs.myhuaweicloud.com/models/imageinpainting_hifill/hifill.pb --no-check-certificate

      運行結果如圖所示:

      開始模型轉換了!

      atc --singleop=./matmul_27648.json --output=./0_BatchMatMul_0_0_1_1_1024_1024_0_0_1_1_1024_27648_0_0_1_1_1024_27648 --soc_version=Ascend310 atc --output_type=FP32 --input_shape="img:1,512,512,3;mask:1,512,512,1" --input_format=NHWC --output="./hifill" --soc_version=Ascend310 --framework=3 --save_original_model=false --model="./hifill.pb"

      模型轉換時間有點長,主要是后一個模型轉換時間長,執行以下命令將轉換好的模型復制到樣例中model文件夾中。

      cp ./hifill.om ./model cp ./0_BatchMatMul_0_0_1_1_1024_1024_0_0_1_1_1024_27648_0_0_1_1_1024_27648/*.om ./model

      獲取樣例需要的測試圖片。

      cd data wget https://c7xcode.obs.myhuaweicloud.com/models/imageinpainting_hifill/data/test.jpg # 退出data文件夾 cd .. cd mask wget https://c7xcode.obs.myhuaweicloud.com/models/imageinpainting_hifill/mask/test.jpg # 退出maks文件夾 cd ..

      2. 運行程序

      cd src python3 main.py

      如果沒有意外,你會看到如下內容:

      可以看到,處理還是挺快的:

      運行完成后,會在out目錄下生成帶推理結果的jpg圖片,來看看最終效果吧:

      這是原圖:

      這是mask:

      可以看到原始圖片左側的兩個人和下方的鞋“消失”了,效果還是不錯的啊。

      到這里,基本就完成了,還是很有意思的。不過也有幾點說一下:

      1. 主要是ECS環境配置

      基于昇騰CANN的推理應用開發--高清圖像修復(Python)的彈性云服務器(ECS)實現 丨【我的華為云體驗之旅】

      環境配置對于第一次接觸的人,不太友好,比較麻煩。主要有兩點:

      (1)默認沒配置出規則。如果是第一次使用,第一次配置公網IP,登錄后就會發現ping不通,這就麻煩了,而且文檔中關于該問題的解決,沒有介紹出規則問題,還是提了工單解決的。

      (2)環境配置沒文檔。也不能說沒文檔,就是文檔的流程不行,也不好找,還有各種跳轉下載鏈接。

      這個很難評判,會者不難,難者不會。

      2. 本案例效果可以提升

      在線體驗和實驗結果其實都不錯,效果很好,但試了下自己的圖片,效果就一般了,魯棒性不夠。

      3. 單算子加速還是挺強的

      實驗中有提到應用開發過程中使用了大矩陣乘法,定義Matmul 單算子json文件結構,將其轉換為單算子模型。這一點就很不錯,Matmul這個算子做的矩陣乘,計算比較復雜,Ascend的支持其實不太好,特別是Ascend 910的時候,耗時比較嚴重,這里轉為單算子模型就好多了,利于性能提升,也更靈活,部署嘛,就是最大程度發揮或者說壓榨硬件算力。

      4. 完整生態鏈條,如果是能訓練到部署完整流程就更好了,Ascend 910訓練,Ascend 310部署推理,甚至落地應用,這樣也可以盡量不免部署是算子不支持的問題,再加上MindSpore就更完美了,應該是能最大程度發揮硬件算力了,畢竟自研,應該是軟硬件高度適配。

      5. 與同是部署用的NVIDIA Jetson系列產品對比,需要做模型轉換,這是因為一般模型都是用GPU訓練的,部署到Ascend 310需要轉為專用的om模型,但這涉及到算子支持度和框架支持問題,目前來說,昇騰這方面還是有些不足的,一方面是算子支持度可以更好,因為會遇到某些算子不支持的問題;另一個方面,目前不支持PyTorch模型的直接轉換。而這些問題,Jetson產品基本不會遇到,因為該產品與訓練用的GPU為同一硬件基礎。昇騰生態建設需要不斷發展。

      需要注意的是,ECS服務器是消耗Modelarts代金券的,即使彈性云服務器ECS關機后仍會計費,如果長時間不用了記得?刪除它?刪除它?刪除它。

      【我的華為云體驗之旅】有獎征文火熱進行中:https://bbs.huaweicloud.com/blogs/306271

      Python 彈性云服務器 ECS 昇騰 深度學習 神經網絡

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

      上一篇:關于Hyper-V網絡設置經驗總結(Default Switch/固定IP/SSH)
      下一篇:Redis干貨分享 | 5個步驟構建優質Redis模塊
      相關文章
      中文字幕日韩亚洲| 精品无码专区亚洲| 亚洲国产成人精品久久久国产成人一区二区三区综 | 久久精品国产亚洲网站| 老子影院午夜伦不卡亚洲| 亚洲国产区男人本色| 亚洲国产综合精品中文第一| 亚洲乱码一二三四五六区| 亚洲同性男gay网站在线观看| 亚洲欧洲尹人香蕉综合| 亚洲毛片基地日韩毛片基地| 亚洲精品白色在线发布| 亚洲视频一区在线| 亚洲国产美女在线观看| 亚洲国产日韩在线| 国产精品亚洲精品| 亚洲va成无码人在线观看| 亚洲一级毛片免观看| 成人亚洲国产va天堂| 亚洲色大18成人网站WWW在线播放| 中文字幕乱码亚洲无线三区| 亚洲精品无码成人片久久不卡| 亚洲精华液一二三产区| 国产精品自拍亚洲| 亚洲裸男gv网站| 亚洲精品无码鲁网中文电影| 久久国产精品亚洲综合| 老色鬼久久亚洲AV综合| 亚洲性无码av在线| 国产亚洲中文日本不卡二区| 亚洲av日韩精品久久久久久a| 亚洲国产一区二区三区| 中文国产成人精品久久亚洲精品AⅤ无码精品 | 亚洲国产精品久久久天堂| 国产精品亚洲一区二区三区在线 | 久久久影院亚洲精品| 亚洲天堂一区二区| 亚洲一区在线视频| 亚洲国产精品无码中文lv | 亚洲精品视频在线免费| 亚洲人成色777777精品|