學習昇騰開發的六天--ACL應用開發之運行第一個實例

1、下載一個實例,運行一個圖像分類實例(環境:Ubuntu22.04,硬件:昇騰310B1,加速模塊:atlas 200i a2)

samples: CANN Samples - Gitee.com

目錄結構如下:

├── data
│ ? ├── dog1_1024_683.jpg ? ? ? ? ? ?//測試數據,需要按指導獲取測試圖片,放到data目錄下
│ ? ├── dog2_1024_683.jpg ? ? ? ? ? ?//測試數據,需要按指導獲取測試圖片,放到data目錄下

├── inc
│ ? ├── model_process.h ? ? ? ? ? ? ? //聲明模型處理相關函數的頭文件
│ ? ├── sample_process.h ? ? ? ? ? ? ?//聲明資源初始化/銷毀相關函數的頭文件 ? ? ? ? ? ? ? ? ??
│ ? ├── utils.h ? ? ? ? ? ? ? ? ? ? ? //聲明公共函數(例如:文件讀取函數)的頭文件

├── script
│ ? ├── transferPic.py ? ? ? ? ? ? ? //將*.jpg轉換為*.bin,同時將圖片從1024*683的分辨率縮放為224*224

├── src
│ ? ├── acl.json ? ? ? ? //系統初始化的配置文件
│ ? ├── CMakeLists.txt ? ? ? ? //編譯腳本
│ ? ├── main.cpp ? ? ? ? ? ? ? //主函數,圖片分類功能的實現文件
│ ? ├── model_process.cpp ? ? ?//模型處理相關函數的實現文件
│ ? ├── sample_process.cpp ? ? //資源初始化/銷毀相關函數的實現文件 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
│ ? ├── utils.cpp ? ? ? ? ? ? ?//公共函數(例如:文件讀取函數)的實現文件

├── .project ? ? //工程信息文件,包含工程類型、工程描述、運行目標設備類型等
├── CMakeLists.txt ? ?//編譯腳本,調用src目錄下的CMakeLists文件

2、簡化版步驟(注意下面的目錄是我的將實例從gitee下載下來后拷貝在notebooks下的):

---------------------------------------------------準備工作--------------------------------------------------------------

1)下載實例

2)在vscode中打開實例

3)下載權重文件(ResNet-50原始模型):

  • ResNet-50網絡的模型文件(*.prototxt):單擊Link下載該文件。
  • ResNet-50網絡的權重文件(*.caffemodel):單擊Link下載該文件。
  • 將權重文件放在/home/HwHiAiUser/samples/notebooks/resnet50_imagenet_classification/caffe_model“目錄下。如果目錄不存在,需要自行創建。

4)將ResNet-50原始模型轉換為適配昇騰AI處理器的離線模型(*.om文件),我的處理器是昇騰310B1。可以通過npu-smi info指令進行查詢自己的硬件芯片型號

atc --model=caffe_model/resnet50.prototxt --weight=caffe_model/resnet50.caffemodel --framework=0 --output=model/resnet50 --soc_version=Ascend310B1 --input_format=NCHW --input_fp16_nodes=data --output_type=FP32 --out_nodes=prob:0

5)準備測試圖片,放在data目錄下

6)切換到“樣例目錄/data“目錄下,執行transferPic.py腳本,將*.jpg轉換為*.bin,同時將圖片從1024*683的分辨率縮放為224*224。在“樣例目錄/data“目錄下生成2個*.bin文件。

python3 ../script/transferPic.py

---------------------------------------------------編譯運行--------------------------------------------------------------

7)回到resnet50_imagenet_classification目錄下(這里需要修改為自己的目錄,具體修改方法,見上方詳細鏈接)

export DDK_PATH=/usr/local/Ascend/ascend-toolkit/latest
export NPU_HOST_LIB=/usr/local/Ascend/ascend-toolkit/latest/runtime/lib64/stub

8)新建目錄用于存放編譯文件

mkdir -p build/intermediates/host

9)切換都按新建的目錄下,并編譯

cd build/intermediates/host
cmake ../../../src -DCMAKE_CXX_COMPILER=g++ -DCMAKE_SKIP_RPATH=TRUE

10)編譯成功后生成可執行文件

make

11)切換到生成的可執行文件目錄下運行,out目錄

./main

12)以上就是快速體驗的步驟,大多失敗是出現在目錄上和型號上,新手第一次實現建議前期一步一步把準備工作做好,重要目錄存檔,或者都翻幾遍就熟悉了,還有可能出現的是用戶權限問題,切換為root用戶一般能解決這種問題。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/85142.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/85142.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/85142.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

可靈AI-快手公司自主研發的一款AI視頻與圖像生成工具

可靈AI是由快手公司自主研發的一款AI視頻與圖像生成工具,于2024年6月正式推出。以下是對其的詳細介紹: 核心功能 AI視頻生成: 文生視頻:輸入文字描述,AI可自動生成匹配的視頻片段。圖生視頻:上傳圖片&…

創客匠人解析:存量時代創始人 IP 打造與免費流量池策略

在存量競爭的商業環境中,企業如何突破增長瓶頸?創客匠人結合新潮傳媒創始人張繼學的實戰洞察,揭示 “品牌 IP” 雙輪驅動下的免費流量池構建邏輯,為知識變現與創始人 IP 打造提供新思路。 一、存量時代的流量革命:從…

提升語義搜索效率:LangChain 與 Milvus 的混合搜索實戰

我從不幻想人生能夠毫無波折,但我期望遭遇困境之際,自身能夠成為它的克星。 概述 LangChain與Milvus的結合構建了一套高效的語義搜索系統。LangChain負責處理多模態數據(如文本、PDF等)的嵌入生成與任務編排,Milvus作…

MySQL配置簡單優化與讀寫測試

測試方法 先使用sysbench對默認配置的MySQL單節點進行壓測,單表數據量為100萬,數據庫總數據量為2000萬,每次壓測300秒。 sysbench --db-drivermysql --time300 --threads10 --report-interval1 \--mysql-host192.168.0.10 --mysql-port3306…

獵板深耕透明 PCB,解鎖電子設計新邊界

在電子技術快速迭代的當下,獵板始終關注行業前沿,透明 PCB 作為極具創新性的技術,正在改變電子設備的設計與應用格局。? 從傳統的綠色、棕色 PCB 到如今的透明 PCB,其突破在于特殊基材與導電材料的運用,實現 85%-92%…

FLAML:快速輕量級自動機器學習框架

概述 FLAML(Fast and Lightweight AutoML)是微軟開發的一個高效的自動機器學習(AutoML)框架。它專注于在有限的計算資源和時間約束下,自動化機器學習管道的構建過程,包括特征工程、模型選擇、超參數調優等…

Github 以及 Docker的 wsl --list --online無法訪問問題

修改電腦DNS 騰訊 DNS IP:119.29.29.29 備用:182.254.116.116 阿里DNS IP:223.5.5.5 223.6.6.6 百度DNS IP:180.76.76.76 谷歌DNS IP:8.8.8.8

Go 語言中的變量和常量

這篇文章已經放到騰訊智能工作臺的知識庫啦,鏈接在這里:ima.copilot-Go 入門到入土。要是你有啥不懂的地方,就去知識庫找 AI 聊一聊吧。 1、變量的聲明與使用 我們來探討編程語言中最核心的概念之一:變量。 1、靜態語言中的變量…

破局傳統訂貨!云徙渠道訂貨系統賦能企業數字化渠道升級

在數字化浪潮的推動下,傳統經銷商訂貨模式面臨著諸多挑戰,如信息孤島、系統崩潰、移動化不足等問題。云徙渠道訂貨系統憑借其創新的數字化架構和強大的功能模塊,正在成為企業實現渠道數字化轉型的重要工具。 系統功能與創新 云徙渠道訂貨系統…

SQL關鍵字三分鐘入門:UNION 與 UNION ALL —— 數據合并全攻略

在處理數據時,有時我們需要將來自不同表或同一表的不同查詢結果合并在一起。例如: 合并兩個部門的員工名單;將多個地區的銷售數據匯總;顯示某段時間內所有新增和修改的記錄。 這時候,我們就需要用到 SQL 中非常強大的…

SNMPv3 的安全命名空間詳解

1. 安全命名空間的本質 安全命名空間是 SNMPv3 的核心安全機制,通過 上下文(Context) 實現: #mermaid-svg-6cV9146nTFF1zCMJ {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#merma…

【嵌入式硬件實例】-555定時器實現煙霧和易燃氣體泄露檢測

555定時器實現煙霧和易燃氣體泄露檢測 文章目錄 555定時器實現煙霧和易燃氣體泄露檢測1、555定時器介紹2、MQ-2 氣體/煙霧傳感器模塊介紹3、硬件準備與接線在本文中,我們將使用555定時器和MQ-2氣體傳感器構建一個氣體泄漏檢測和報警系統。它在煤氣泄漏期間用作家庭安全警報器。…

【機器人】DualMap 具身導航 | 動態場景 開放詞匯語義建圖 導航系統

DualMap 是一個在線的開放詞匯語義映射系統,使得機器人能夠通過自然語言查詢在動態變化的環境中理解和導航 雙地圖導航,結合全局抽象地圖進行高層次候選選擇,以及局部具體地圖進行精確目標定位,有效管理和更新環境中的動態變化。…

【Fifty Project - D37】

fifty project算是失敗了一半了 成功的那一半在于一定程度上拯救了我的作息和健康,兩個月前入職體檢的肝有點不健康,昨天復查發現全都回到了健康范圍!尿酸也在正常范圍!就是體重還是沒減下來hhh 失敗的一半在于自己很差勁的規劃能…

解碼危險品物流背后的“隱形防線”

當急救藥品跨越千里送達醫院,當新能源電池準時抵達生產線,當化工原料安全運往工廠……這些與日常生活息息相關的場景背后,有一群人始終在和時間賽跑,與風險博弈。他們不是超級英雄,而是危險品物流從業者——一個鮮少被…

Flutter Melos在外包團隊協作中的弊端與應對策略

引言 在大型Flutter項目開發中,Melos作為一款優秀的Monorepo管理工具,能夠有效協調多包項目的開發流程。然而,當項目涉及外包團隊協作時,Melos的使用會面臨一系列獨特的挑戰。本文將深入分析Flutter Melos在外包團隊協作環境中的…

<selectKey> 中的order 屬性

在 MyBatis 中&#xff0c;<selectKey> 標簽的 order 屬性用于指定生成主鍵值的 SQL 語句執行時機。 除了 AFTER&#xff0c;MyBatis 還支持另一種模式&#xff1a;BEFORE&#xff0c; 它們有明確的使用場景和區別&#xff1a; order"AFTER" 適用數據庫&#x…

BitsAndBytes(簡稱 BnB)是一個用于“壓縮”大語言模型的工具包

BitsAndBytes&#xff08;簡稱 BnB&#xff09;是一個用于“壓縮”大語言模型的工具包&#xff0c;能把模型從原來的16位或32位&#xff0c;壓成4位或8位&#xff0c;減少顯存占用&#xff0c;同時保持盡量高的精度。 &#x1f9e9; 為什么叫 Bits and Bytes&#xff1f; 它的…

【前端】 Vue 3 中二次封裝組件

在 Vue 3 中二次封裝組件是提高代碼復用性和維護性的重要手段。以下是詳細的封裝方法和最佳實踐&#xff1a; 一、封裝原則 功能擴展&#xff1a;在原有組件基礎上添加新功能定制樣式&#xff1a;統一項目的 UI 設計規范簡化接口&#xff1a;隱藏復雜邏輯&#xff0c;提供簡潔…

分布式詞表示(Distributed Word Representation):自然語言處理的核心基石

分布式詞表示&#xff08;Distributed Word Representation&#xff09;&#xff1a;自然語言處理的核心基石 在自然語言處理&#xff08;NLP&#xff09;領域&#xff0c;如何將離散的詞匯轉化為計算機可理解的數值形式&#xff0c;一直是技術突破的關鍵。傳統的獨熱編碼&…