ARM Mali GPUでの深層学習の予測
この例では,関数cnncodegen
を使用して、手臂®马里GPUでの深層学習を使用するイメージ分類アプリケーションのコードを生成する方法を説明します。この例では,MobileNet-v2
Dagネットワクを使用してメジ分類を実行します。生成コードはコンピュータービジョンおよび機械学習用の臂计算库を利用します。
必要条件
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▪▪の予測は次のようになります。