【啟動AI Maker世代 】2024 MAI 開發者社群大會(5/16-17)
|

【Arm的AI世界】利用Arm機器學習嵌入式評估套件快速部署Edge AI應用

   
作者: Elham Harirpoush,Arm資深解決方案工程師

Cortex-M55處理器是Arm Cortex-M處理器中人工智慧功能最強大的,也是第一顆基於Arm Helium技術的CPU。儘管Cortex-M55在微小的微處理器上運作機器學習模型速度已經很快了,不過它與Arm Ethos-U55 microNPU完成整合後,在嵌入式系統中最快可讓機器學習推論速度提升480倍。

Ethos-U55是一款機器學習處理器,經過最佳化後可執行常見的數學機器學習演算法運算,例如卷積或啟動函數。針對音訊處理、語音辨識、影像分類與物件偵測,Ethos-U處理器支援例如卷積神經網路(CNN)與循環神經網路(RNN)等神經網路模型。

Ethos-U NPU上部署推論

在Ethos-U NPU上執行推論時,將網路運算子量化成8位元(無正負號或帶正負號)或16位元(帶正負號)是必要的,原因是Ethos-U只支援8位元的權重或16位元的啟動。TensorFlow模型最佳化套件(TensorFlow Model Optimization Toolkit)可以讓開發人員在記憶體、功耗與儲存空間受限的裝置上進行部署時最佳化機器學習模型。

目前已有不同的最佳化技術可供使用,包括量化(quantization)、修剪法(pruning,或譯「剪枝」)以及分群法(clustering),這些都是TensorFlow模型最佳化套件的一部份,並與TensorFlow Lite相容。例如,您可以對模型進行訓練後的整數量化(post-training integer quantization),並利用TFLiteConverter把轉化完成的模型載入後,將權重與啟動從浮點數字轉化成整數數字。請留意,模型一旦完成修剪或分群,修剪/分群後通常會進行小量的訓練,以補償準確度的流失。因此,必須在模型的複雜性與大小之間權衡。

使用訓練後量化來最佳化模型:

def representative_dataset():

for _ in range(100):

# Using some random data for testing purposes

data = np.random.rand(1, 244, 244, 3)

yield

# Load the model into TensorFlow using TFLite converter

converter = tf.lite.TFLiteConverter.from_saved_model(“model_tf”)

# Set options for full integer post-training quantization

converter.optimizations =

converter.representative_dataset = representative_data_gen

# Ensure that if any ops can't be quantized, the converter throws an error

converter.target_spec.supported_ops =

# Set the input and output tensors to int8

converter.inference_input_type = tf.int8

converter.inference_output_type = tf.int8

# Convert to TFLite

tflite_model_quant = converter.convert()

若要在Ethos-U上部署NN模型,需要以Vela來編譯訓練好的量化模型,以便為Ethos-U產出最佳化的NN模型。Vela是一種開源Python工具,可將TFLite NN模型編譯成最佳化過的版本,在包含Arm Ethos-U NPU的嵌入式系統上運作。您可執行$pip install ethos-u-vela指令來安裝Vela,然後藉由下列指令行,使用像ethos-u55-128等特定Ethos-U NPU組態對網路進行編譯。點擊此連結可閱讀更多有關Vela的不同指令行選項。

$ vela model.tflite \

--accelerator-config=ethos-u55-128 \

--optimise Performance

--config vela.ini

--system-config=Ethos-U55_High_End_Embedded

–-output-dir ./results_dir /path/to/model.tflite \

accelerator-config指定不同Ethos-U55之間可以使用的microNPU配置:

  • ethos-u55-256
  • ethos-u55-128
  • ethos-u55-64
  • ethos-u55-32
  • ethos-u65-256
  • ethos-u65-512

本文為會員限定文章

立即加入會員! 全站文章無限看~

                               

已經是會員? 按此登入

只需不到短短一分鐘...

輸入您的信箱與ID註冊即可享有一切福利!

會員福利
1

免費電子報

2

會員搶先看

3

主題訂閱

4

好文收藏

Elham Harirpoush

Author: Elham Harirpoush

Arm資深解決方案工程師

Share This Post On
468 ad

Submit a Comment

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *