使用ATC工具將主流開源框架模型轉換為昇騰模型
01 什么是ATC,它能做什么?
昇騰張量編譯器(Ascend Tensor Compiler,簡稱ATC)是昇騰CANN架構體系下的模型轉換工具:什么是ATC,它能做什么?
它可以將開源框架的網(wǎng)絡模型(例如TensorFlow、ONNX等)轉換為昇騰AI處理器支持的模型文件(.om格式),用于后續(xù)的模型推理。
它可以將基于Ascend IR定義的單算子描述文件(*.json格式)轉換為昇騰AI處理器支持的模型文件(.om格式),用于后續(xù)在整網(wǎng)中驗證算子功能。
模型轉換過程中,ATC會進行算子調度優(yōu)化、權重數(shù)據(jù)重排、內存使用優(yōu)化等操作,對開源框架的網(wǎng)絡模型做進一步調優(yōu),使其高效地在昇騰AI處理器上執(zhí)行。
02?ATC工具功能架構

開源框架網(wǎng)絡模型編譯流程:
使用ATC工具轉換模型時,開源框架網(wǎng)絡模型經(jīng)過Parser解析后,轉換為昇騰的中間圖IR Graph。
中間圖IR Graph經(jīng)過圖準備,圖拆分,圖優(yōu)化,圖編譯等一系列操作后,轉成適配昇騰AI處理器的*.om模型文件。
后續(xù)用戶可調用AscendCL提供的模型加載、執(zhí)行等接口實現(xiàn)模型推理。
單算子編譯流程:
使用ATC工具轉換單算子時,單算子經(jīng)過編譯后,轉換成適配昇騰AI處理器的單算子*.om模型文件。
后續(xù)用戶可調用AscendCL提供的單算子模型加載、執(zhí)行等接口在整網(wǎng)中驗證單算子功能。
03如何使用ATC工具
下面以Caffe框架ResNet-50網(wǎng)絡模型為例,介紹如何使用ATC工具轉換模型。
1. 將Caffe框架ResNet-50網(wǎng)絡模型的模型文件*.prototxt、權重文件*.caffemodel上傳至ATC工具所在的Linux服務器。
2. 執(zhí)行如下命令進行模型轉換。
參數(shù)解釋如下:
--framework:原始網(wǎng)絡模型框架類型,0表示Caffe框架。
--soc_version:指定模型轉換時昇騰AI處理器的版本,例如Ascend310。
--model:原始網(wǎng)絡模型文件路徑,含文件名。
--weight:原始網(wǎng)絡模型權重文件路徑,含文件名,僅當原始網(wǎng)絡模型是Caffe時需要指定。
--output:轉換后的*.om模型文件路徑,含文件名,轉換成功后,模型文件名自動以.om后綴結尾。
3. 若提示ATC run success信息,則說明模型轉換成功。
? ? 在--output參數(shù)指定的路徑下,可查看轉換后的模型文件,例如caffe_resnet50.om。
04 ATC工具支持更多特性
上述只給出了ATC工具進行模型轉換最基本的命令,本章節(jié)給出ATC工具支持的更多特性,方便用戶進一步了解。
ATC工具支持將原始模型文件或昇騰*.om模型文件轉換成json格式:
- 原始模型文件—>json文件
? ? ? ?- 昇騰*.om模型文件—>json文件
ATC工具支持自定義*.om模型的輸入輸出數(shù)據(jù)類型:
? ? ? ? 模型轉換時支持指定網(wǎng)絡模型的輸入或輸出節(jié)點的數(shù)據(jù)類型、Format,支持設置精度等。
? ? ? ? 此處的示例命令場景:針對Caffe框架ResNet50網(wǎng)絡模型,轉換后的模型輸入為FP16類型,指定Pooling算子作為輸出,并且該輸出節(jié)點為FP16類型。
ATC工具支持設置動態(tài)BatchSize/動態(tài)分辨率:
? ? ? ? 某些推理場景,如檢測出目標后再執(zhí)行目標識別網(wǎng)絡,由于目標個數(shù)不固定導致目標識別網(wǎng)絡輸入BatchSize不固定;如果每次推理都按照最大的BatchSize或最大分辨率進行計算,會造成計算資源浪費,因此,模型轉換需要支持動態(tài)BatchSize和動態(tài)分辨率的設置,實際推理時,通過AscendCL接口設置本次推理所需的BatchSize和動態(tài)分辨率。
? ? ? ? -?動態(tài)BatchSize
? ? ? ? 其中,“--input_shape ”中的“-1”表示設置動態(tài)BatchSize,具體支持哪些BatchSize由“--dynamic_batch_size”決定。
? ? ? ??-?動態(tài)分辨率
? ? ? 其中,“--input_shape ”中的“-1,-1”表示設置動態(tài)分辨率,具體支持哪些分辨率由“--dynamic_image_size ”決定。
05 更多介紹
關于ATC工具更多參數(shù)和特性說明,請登錄昇騰社區(qū)查閱:
