Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

MATLAB Coder を使用した深層学習の前提条件

MathWorks 製品

MATLAB® Coder™ を使用して深層学習ネットワークのコードを生成するには、次もインストールしなければなりません。

  • Deep Learning Toolbox™

  • MATLAB Coder Interface for Deep Learning Libraries

MATLAB Coder Interface for Deep Learning LibrariesMATLAB Online™ ではサポートされていません。

サードパーティ製のハードウェアとソフトウェア

MATLAB Coder を使用して、Intel® または ARM® プロセッサに展開する深層学習ネットワークの C++ コードを生成できます。生成されたコードは、ターゲット CPU 用に最適化された深層学習ライブラリを利用します。ハードウェアとソフトウェアの要件はターゲット プラットフォームによって決まります。

MATLAB Coder を使用して、深層学習ネットワークの汎用 C または C++ コードの生成もできます。このような C または C++ コードは、どのサードパーティ ライブラリにも依存しません。詳細については、深層学習ネットワーク向けの汎用 C/C++ コードの生成を参照してください。

メモ

必要なソフトウェア ライブラリへのパスは、スペースや、かっこなどの特殊文字を含むことはできません。Windows® オペレーティング システムでは、特殊文字やスペースは 8.3 ファイル名が有効になっている場合にのみ使用できます。8.3 ファイル名の詳細については、Windows のドキュメントを参照してください。

 Intel CPUARM Cortex-A CPUARM Cortex-M CPU
ハードウェア要件

Intel Advanced Vector Extensions 2 (Intel AVX2) の命令をサポートする Intel プロセッサ。

NEON 拡張子をサポートする ARM Cortex-A プロセッサ。

ARM Cortex-M プロセッサ。

ソフトウェア ライブラリ

Intel Math Kernel Library for Deep Neural Networks (MKL-DNN), v1.4。https://01.org/onednnを参照してください。

一部の必要なファイルが不足しているため、プリビルド ライブラリは使用しないでください。代わりに、ソース コードからライブラリをビルドします。GitHub® でのライブラリのビルド手順を参照してください。

ビルドの詳細については、MATLAB Answers™: https://www.mathworks.com/matlabcentral/answers/447387-matlab-coder-how-do-i-build-the-intel-mkl-dnn-library-for-deep-learning-c-code-generation-and-depの投稿を参照してください。

メモ

MATLAB ホスト コンピューターで実行する MEX 関数を生成する場合は、汎用 C/C++ コードを生成するのではなく、MKL-DNN ターゲットを使用することをお勧めします。MKL-DNN ライブラリを使用する生成コードは、汎用コードよりもパフォーマンスが向上する可能性があります。

コンピューター ビジョンと機械学習用の ARM Compute Library、Version 19.05 および 20.02.1。https://developer.arm.com/ip-products/processors/machine-learning/compute-libraryを参照してください。

バージョン番号を coder.ARMNEONConfig 構成オブジェクトで指定します。既定のバージョン番号は v20.02.1 です。

ARM ハードウェアではコンパイラとの互換性がない可能性があるため、プリビルド ライブラリは使用しないでください。代わりに、ソース コードからライブラリをビルドします。ホスト マシン上またはターゲット ハードウェア上で直接ライブラリをビルドします。GitHub でのライブラリのビルド手順を参照してください。

libarm_compute.so などのライブラリ ファイルを含むフォルダーは lib という名前にしなければなりません。フォルダーの名前が build である場合は、名前を lib に変更します。

ビルドの詳細については、MATLAB Answers: https://www.mathworks.com/matlabcentral/answers/455590-matlab-coder-how-do-i-build-the-arm-compute-library-for-deep-learning-c-code-generation-and-deploの投稿を参照してください。

ARM プロセッサに量子化されたネットワークを展開するには、ARM Compute Library version 20.02.1 を使用しなければなりません。

CMSIS-NN ライブラリ version 5.7.0。https://developer.arm.com/tools-and-software/embedded/cmsisを参照してください。

MATLAB Answers (https://www.mathworks.com/matlabcentral/answers/1631260) に記載されているビルド ステップを使用してホスト マシン上でライブラリをビルドします。

オペレーティング システムのサポート

Windows、Linux® および macOS

Windows および Linux のみ。

Windows および Linux のみ。

C++ コンパイラ

MATLAB Coder では、サポートされているインストール済みのコンパイラが検索されて使用されます。サポートされているコンパイラのリストについては、MathWorks® Web サイトのサポートされるコンパイラを参照してください。

mex -setup を使用して既定のコンパイラを変更できます。既定のコンパイラの変更を参照してください。

C++ コンパイラで C++11 がサポートされていなければなりません。

Windows で、codegen コマンドを使用して Intel MKL-DNN ライブラリを使用するコードを生成するには、Microsoft® Visual Studio® 2015 以降を使用します。

Windows で、どのサードパーティ ライブラリも使用しない汎用 C または C++ コードを生成するには、Microsoft Visual Studio または MinGW® コンパイラを使用します。詳細については、深層学習ネットワーク向けの汎用 C/C++ コードの生成を参照してください。

メモ

Intel MKL-DNN ライブラリを使用する MEX 関数を生成する場合、MinGW コンパイラはサポートされません。

その他

ARM Cortex-A ベースの深層学習例には、Open Source Computer Vision Library (OpenCV) v3.1.0 が必要です。

メモ: 例には opencv_core.libopencv_video.lib などの個別のライブラリが必要です。Computer Vision Toolbox™ に同梱されている OpenCV ライブラリには必要なライブラリが含まれていないため、OpenCV インストーラーはそれらのライブラリをインストールしません。そのため、OpenCV ソースをダウンロードして、ライブラリをビルドしなければなりません。

詳細については、OpenCV のドキュメントを参照してください。

環境変数

MATLAB Coder は、環境変数を使用して深層学習ネットワークのコード生成に必要なライブラリを見つけます。

プラットフォーム変数名説明
WindowsINTEL_MKLDNN

Intel MKL-DNN ライブラリ インストールのルート フォルダーへのパス。

以下に例を示します。

C:\Program Files\mkl-dnn

ARM_COMPUTELIB

ARM ターゲット ハードウェアにインストールされる ARM Compute Library のルート フォルダーへのパス。

以下に例を示します。

/usr/local/arm_compute

ARM ターゲット ハードウェアで ARM_COMPUTELIB を設定します。

CMSISNN_PATH

ARM ターゲット ハードウェアにインストールされる CMSIS-NN ライブラリのルート フォルダーへのパス。

次に例を示します。

/usr/local/cmsis_nn

ARM ターゲット ハードウェアで CMSISNN_PATH を設定します。

PATH

Intel MKL-DNN ライブラリ フォルダーへのパス。

以下に例を示します。

C:\Program Files\mkl-dnn\lib

LinuxLD_LIBRARY_PATH

Intel MKL-DNN ライブラリ フォルダーへのパス。

以下に例を示します。

/usr/local/mkl-dnn/lib/

ターゲット ハードウェアの ARM Compute Library フォルダーへのパス。

以下に例を示します。

/usr/local/arm_compute/lib/

ARM ターゲット ハードウェアで LD_LIBRARY_PATH を設定します。

INTEL_MKLDNN

Intel MKL-DNN ライブラリ インストールのルート フォルダーへのパス。

以下に例を示します。

/usr/local/mkl-dnn/

ARM_COMPUTELIB

ARM ターゲット ハードウェアにインストールされる ARM Compute Library のルート フォルダーへのパス。

以下に例を示します。

/usr/local/arm_compute/

ARM ターゲット ハードウェアで ARM_COMPUTELIB を設定します。

CMSISNN_PATH

ARM ターゲット ハードウェアにインストールされる CMSIS-NN ライブラリのルート フォルダーへのパス。

次に例を示します。

/usr/local/cmsis_nn

ARM ターゲット ハードウェアで CMSISNN_PATH を設定します。

macOSINTEL_MKLDNN

Intel MKL-DNN ライブラリ インストールのルート フォルダーへのパス。

以下に例を示します。

/usr/local/mkl-dnn

ARM Cortex-A ターゲット上の UNIX® ベースの OSOPENCV_DIR

OpenCV のビルド フォルダーへのパス。OpenCV を使用する深層学習例のために、OpenCV をインストールします。

以下に例を示します。

/usr/local/opencv/build

メモ

MATLAB Support Package for Raspberry Pi™ Hardware を使用して Raspberry Pi 向けのコードを生成するには、環境変数を非対話型で設定しなければなりません。詳細についてはhttps://www.mathworks.com/matlabcentral/answers/455591-matlab-coder-how-do-i-setup-the-environment-variables-on-arm-targets-to-point-to-the-arm-compute-liを参照してください。

メモ

OpenCV を使用する例を作成して実行するには、ターゲット ボードに OpenCV ライブラリをインストールしなければなりません。Linux に OpenCV をインストールする場合は、ライブラリ ファイルへのパスと、ヘッダー ファイルへのパスがシステム パスにあることを確認してください。既定では、ライブラリ ファイルとヘッダー ファイルは /usr/local/lib//usr/local/include/opencv などの標準の場所にそれぞれインストールされます。

ターゲット ボードに OpenCV をインストールする場合は、前の表で説明しているように環境変数 OPENCV_DIRPATH を設定します。

メモ

OpenMP スレッドのバインディングを制御する環境変数を物理処理装置に設定することで、Intel CPU 用に生成されたコードのパフォーマンスを改善できる場合があります。たとえば、Linux プラットフォームで、KMP_AFFINITY 環境変数を scatter に設定します。Intel CPU を使用する他のプラットフォームの場合は、同様の環境変数を使用して、生成されたコードのパフォーマンスを改善できる場合があります。

関連するトピック