主要内容

ARM Mali GPUでの深層学習の予測

この例では,関数cnncodegenを使用して、手臂®马里GPUでの深層学習を使用するイメージ分類アプリケーションのコードを生成する方法を説明します。この例では,MobileNet-v2Dagネットワクを使用してメジ分類を実行します。生成コードはコンピュータービジョンおよび機械学習用の臂计算库を利用します。

必要条件

  • ARM Mali GPUベ,スのハ,ドウェア。たとえば,HiKey960は马里GPUを含むターゲットプラットフォームの1つです。

  • 马里GPU向けにビルドされたターゲット手臂ハードウェアの臂计算库。

  • タ、ゲットARMハ、ドウェア上の开源计算机视觉库(OpenCV v2.4.9)。

  • コンパ▪▪ラおよびラ▪▪ブラリの環境変数。ARM_COMPUTE変数およびLD_LIBRARY_PATH変数がタ,ゲットプラットフォ,ム上で設定されていることを確認します。サポトされているコンパラおよびラブラリのバジョンの詳細は,サ,ドパ,ティハ,ドウェアを参照してください。環境変数の設定は,前提条件となる製品の設定を参照してください。

事前学習済みのDAGNetworkの取得

MobileNet-v2网络的深度学习工具箱模型で入手できる事前学習済みのMobileNet-v2ネットワ,クを読み込みます。

Net = mobilenetv2
net = DAGNetwork with properties: Layers: [154×1 nnet.cnn.layer.Layer] Connections: [163×2 table] InputNames: {'input_1'} OutputNames: {'ClassificationLayer_Logits'}

このネットワークには,畳み込み層,バッチ正規化層,ソフトマックス層,分類出力層など,155個の層が含まれています。関数analyzeNetwork ()は,ネットワークアーキテクチャの対話型プロット,およびネットワーク層についての情報が含まれる表を表示します。

analyzeNetwork(净);

コ,ドの生成

手臂タ,ゲットでの深層学習のため,ホスト開発コンピュ,タ,でコ,ドを生成します。実行可能プログラムをビルドして実行するには,生成されたコードを手臂ターゲットプラットフォームに移動します。タ,ゲットプラットフォ,ムにはARM Mali GPUがなければなりません。たとえば,HiKey960はこの例で生成されたコードを実行できるターゲットプラットフォームの1つです。

タゲットラブラリをarm-compute-maliとして指定して関数cnncodegenを呼び出します。

cnncodegen(净,“targetlib”“arm-compute-mali”);

生成されたファルのタゲットへのコピ

推奨されるSCP(安全复制协议)クライアントまたはSecure Shell (SSH)文件传输协议クライアントを使用して,生成されたcodegenフォルダーとその他の必要なファイルをホスト開発コンピューターからターゲットプラットフォームに移動します。

たとえば,Linux®プラットフォームでは,HiKey960にファイルを転送するには,次の形式のscpコマンドを使用します。

System ('sshpass -p [password] SCP (sourcefile) [username]@[targetname]:~/');

系统(SCP main_mobilenet_arm_generic.cpp username@targetname:~/);系统(SCP pepper_mobilenet .png username@targetname:~/);系统('sshpass -p password SCP makefile_mobilenet_arm_generic。可username@targetname: ~ /);系统(scp synsetWords.txt username@targetname:~/);系统('sshpass -p password SCP -r codegen username@targetname:~/');

Windows®プラットフォムでは,PuTTY @ # @ンストルに付属するpscpルを使用できます。次に例を示します。

系统('pscp -pw password-r codegen username@targetname:/home/username');

PSCPユ,ティリティは路径上,または現在のフォルダ,になければなりません。

実行可能ファ@ @ルのビルド

タゲットプラットフォムでラブラリをビルドするには,生成されたmakefilecnnbuild_rtw.mkを使用します。

たとえば,HiKey960でラブラリをビルドするには次のようにします。

系统(SSH密码:username@targetname..."make -C /home/username/codegen -f cnnbuild_rtw.mk");

Windowsプラットフォ,ムでは,引数sshを指定した腻子コマンドを使用して,ログaaplンして使コマンドを実行できます。次に例を示します。

系统('putty -ssh username@targetname -pw密码');

ターゲットプラットフォームで実行可能ファイルをビルドして実行するには,次の形式でコマンドを使用します。/home/$(用户名)および./execfile -f makefile_mobilenet_arm_generic.mk

たとえば,HiKey960では次のようになります。

使- c/home/usrnamearm_mobilenet- fmakefile_mobilenet_arm_generic.mk

入力メジファルを指定してarmプラットフォムで実行可能ファルを実行します。

。/ mobilenet_exe peppers_mobilenet.png

入力▪▪メ▪▪ジファ▪▪ルに対する上位5▪▪の予測は次のようになります。

参考

関数

関連するトピック