最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

【2023 · CANN訓(xùn)練營(yíng)第一季】模型轉(zhuǎn)換與ATC工具的學(xué)習(xí)

2023-05-07 20:35 作者:白子不擺爛版  | 我要投稿

【2023 · CANN訓(xùn)練營(yíng)第一季】模型轉(zhuǎn)換與ATC工具的學(xué)習(xí)

文檔參考:CANN文檔社區(qū)版: 6.0.RC1.alpha001

一、為什么要使用ATC工具

昇騰張量編譯器(Ascend Tensor Compiler,簡(jiǎn)稱ATC)是昇騰CANN架構(gòu)體系下的模型轉(zhuǎn)換工具

當(dāng)前昇騰AI處理器以及昇騰AI軟件棧是沒(méi)有辦法直接拿比如Caffe,TensorFlow等開源框架網(wǎng)絡(luò)模型來(lái)直接進(jìn)行推理的,我們需要將開源框架的網(wǎng)絡(luò)模型轉(zhuǎn)換成Davinci架構(gòu)專用的模型。

其作用:

1.它可以將開源框架的網(wǎng)絡(luò)模型(如Caffe、TensorFlow等)以及Ascend IR定義的單算子描述文件轉(zhuǎn)換為昇騰AI處理器支持的離線模型。

2.模型轉(zhuǎn)換過(guò)程中,ATC會(huì)進(jìn)行算子調(diào)度優(yōu)化、權(quán)重?cái)?shù)據(jù)重排、內(nèi)存使用優(yōu)化等具體操作,對(duì)原始的深度學(xué)習(xí)模型進(jìn)行進(jìn)一步的調(diào)優(yōu),從而滿足部署場(chǎng)景下的高性能需求,使其能夠高效執(zhí)行在昇騰AI處理器上。

二、什么是AIPP

AIPP(Artificial Intelligence Pre-Processing)人工智能預(yù)處理,用于在AI Core上完成數(shù)據(jù)預(yù)處理,包括改變圖像尺寸、色域轉(zhuǎn)換(轉(zhuǎn)換圖像格式)、減均值/乘系數(shù)(改變圖像像素),數(shù)據(jù)預(yù)處理之后再進(jìn)行真正的模型推理。

AIPP主要用于在AI Core上完成數(shù)據(jù)預(yù)處理,通過(guò)AIPP提供的色域轉(zhuǎn)換功能,輸出滿足要求的圖片格式;通過(guò)改變圖像尺寸中的補(bǔ)邊(Padding)功能,輸出滿足長(zhǎng)寬對(duì)齊的圖片等,AIPP的出現(xiàn)是對(duì)DVPP能力的有效補(bǔ)充。

AIPP根據(jù)配置方式不同 ,分為靜態(tài)AIPP和動(dòng)態(tài)AIPP;如果要將原始圖片輸出為滿足推理要求的圖片格式,則需要使用色域轉(zhuǎn)換功能;如果要輸出固定大小的圖片,則需要使用AIPP提供的Crop(摳圖)、Padding(補(bǔ)邊)功能

三、環(huán)境安裝與設(shè)置

CANN環(huán)境安裝,可以參考我的【CANN訓(xùn)練營(yíng)-模型部署入門】【CANN訓(xùn)練營(yíng)0基礎(chǔ)贏滿分秘籍】CANN的Ubuntu環(huán)境安裝

安裝好后,根據(jù)需要,在原先的環(huán)境變量基礎(chǔ)上多添加了如下幾個(gè)環(huán)境變量:



1.設(shè)置atc運(yùn)行日志

其中?export ASCEND_SLOG_PRINT_TO_STDOUT=1是設(shè)置atc命令執(zhí)行過(guò)程中的打屏環(huán)境變量

也可以在atc命令中設(shè)置--log參數(shù)(此參數(shù)不能設(shè)置為null),顯示相應(yīng)的日志級(jí)別

如果需要把日志重定向到文件,設(shè)置好上述的打印日志級(jí)別后,將--log參數(shù)設(shè)置為

2.開啟算子并行編譯功能

若網(wǎng)絡(luò)模型較大,則可以開啟算子并行編譯

TE_PARALLEL_COMPILER的值代表算子編譯進(jìn)程數(shù)(配置為整數(shù)),取值范圍為1~32,默認(rèn)值為8,當(dāng)取值大于1時(shí)開啟算子的并行編譯功能。建議不超過(guò):CPU核數(shù)*80%/昇騰AI處理器個(gè)數(shù)

3.設(shè)置打印模型轉(zhuǎn)換過(guò)程中的各階段圖描述信息

其中:

  • 取值為1,全量dump。

  • 取值為2,不含有權(quán)重等數(shù)據(jù)的基本版dump。

  • 取值為3,只顯示節(jié)點(diǎn)關(guān)系的精簡(jiǎn)版dump。

如果想控制dump圖的個(gè)數(shù),還可以設(shè)置:

  • 取值為1,dump所有圖。

  • 取值為2,dump除子圖外的所有圖,默認(rèn)值為2。

  • 取值為3,dump最后的生成圖。

設(shè)置上述變量后,在執(zhí)行atc命令的當(dāng)前路徑會(huì)生成如下文件:

  • ge_onnx*.pbtxt:基于ONNX的開源模型描述結(jié)構(gòu),可以使用Netron等可視化軟件打開。

  • ge_proto*.txt:protobuf格式存儲(chǔ)的文本文件,該文件可以轉(zhuǎn)成json格式文件方便用戶定位問(wèn)題。該文件與ge_onnx*.pbtxt成對(duì)出現(xiàn),但是比ge_onnx*.pbtxt文件會(huì)多string類型的屬性信息,用戶選擇其中一種文件打開即可。

四、模型的導(dǎo)出與轉(zhuǎn)換

我們訓(xùn)練好的模型為pt格式的文件,我們需要先將其轉(zhuǎn)換為onnx的格式,再使用atc工具轉(zhuǎn)換成能使用的om文件?

pt轉(zhuǎn)換為onnx

eg:

在yolov5官網(wǎng)下載了一個(gè)yolov5s.pt

使用其提供的export.py進(jìn)行轉(zhuǎn)換

這個(gè)轉(zhuǎn)換過(guò)程遇到很多問(wèn)題,等我有空整理一個(gè)問(wèn)題集及解決方法

onnx轉(zhuǎn)換為om

1.未使能AIPP

直接使用atc命令轉(zhuǎn)換時(shí),發(fā)現(xiàn)自己有3個(gè)模塊找不到,重新安裝了一下?

使用如下命令安裝了一下:

安裝完成后,再次進(jìn)行轉(zhuǎn)換


轉(zhuǎn)換成功如下圖:

note:輸入的shape要注意寫正確,不然會(huì)出現(xiàn)如下錯(cuò)誤,還有就是,那個(gè)輸出名字不用自己寫.om,輸出時(shí)工具會(huì)自己補(bǔ)全的:

2.使能AIPP

我們?cè)谶M(jìn)行C++搭建的模型推理任務(wù)時(shí),預(yù)處理部分,可以放到AIPP中進(jìn)行。

我們使用insert_op.cfg:內(nèi)容如下

atc命令參數(shù)如下:


出現(xiàn)報(bào)錯(cuò):?

看樣子是進(jìn)行aipp的type不能是fp16

修改后:

這里保留一個(gè)疑問(wèn),AIPP不能輸入fp16進(jìn)行轉(zhuǎn)換但是這里有個(gè)輸出參數(shù)是--output_type=FP16,這個(gè)參數(shù)是參考modelZoo中的樣例里面的參數(shù),不知道這樣是否有問(wèn)題,等后面在模型推理那塊驗(yàn)證時(shí)看看是否有錯(cuò)誤,有錯(cuò)誤再進(jìn)行修改

結(jié)果如下:

上述兩種轉(zhuǎn)換都得到了我們的

結(jié)語(yǔ):至此兩種轉(zhuǎn)換都成功了,后續(xù)我會(huì)在我的模型推理部分的筆記中對(duì)此模型進(jìn)行加載推理使用驗(yàn)證。

ps:該文僅是為了記錄CANN訓(xùn)練營(yíng)的學(xué)習(xí)過(guò)程所用,不參與任何商業(yè)用途,有任何代碼問(wèn)題可以和我一起討論修改


【2023 · CANN訓(xùn)練營(yíng)第一季】模型轉(zhuǎn)換與ATC工具的學(xué)習(xí)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
上虞市| 阿尔山市| 霍邱县| 资讯 | 大关县| 河津市| 克什克腾旗| 九台市| 满洲里市| 外汇| 白朗县| 大新县| 河间市| 青海省| 罗田县| 阳春市| 遂宁市| 扬中市| 乌苏市| 湖南省| 佛山市| 五华县| 卢氏县| 喜德县| 鹤岗市| 仁布县| 集贤县| 西乡县| 桐城市| 大城县| 韶关市| 怀化市| 潜山县| 开阳县| 右玉县| 浏阳市| 万安县| 资阳市| 周口市| 广灵县| 磐安县|