最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。
事前学習済みの畳み込みニューラル ネットワーク (CNN) のためのコードを生成できます。コード ジェネレーターにネットワークを提供するには、SeriesNetwork
(Deep Learning Toolbox)、DAGNetwork
(Deep Learning Toolbox)、yolov2ObjectDetector
(Computer Vision Toolbox) または ssdObjectDetector
(Computer Vision Toolbox) オブジェクトを学習済みネットワークから読み込みます。
coder.loadDeepLearningNetwork
を使用したネットワークの読み込みcoder.loadDeepLearningNetwork
を使用して、コード生成でサポートされているネットワークからネットワーク オブジェクトを読み込むことができます。ネットワークを MAT ファイルから指定できます。MAT ファイルは読み込まれるネットワークのみを含んでいなければなりません。
たとえば、関数 trainNetwork
(Deep Learning Toolbox) を使用して myNet
という学習済みのネットワーク オブジェクトを作成するとします。次に save
を入力してワークスペースを保存します。これによって、そのネットワーク オブジェクトを含む matlab.mat
というファイルが作成されます。ネットワーク オブジェクト myNet
を読み込むには、次のように入力します。
net = coder.loadDeepLearningNetwork('matlab.mat');
事前学習済みの SeriesNetwork
(Deep Learning Toolbox)、DAGNetwork
(Deep Learning Toolbox)、yolov2ObjectDetector
(Computer Vision Toolbox) または ssdObjectDetector
(Computer Vision Toolbox) オブジェクトを返す関数の名前を提供することで、ネットワークの指定もできます。以下に例を示します。
alexnet
(Deep Learning Toolbox)
densenet201
(Deep Learning Toolbox)
googlenet
(Deep Learning Toolbox)
inceptionv3
(Deep Learning Toolbox)
mobilenetv2
(Deep Learning Toolbox)
resnet18
(Deep Learning Toolbox)
resnet50
(Deep Learning Toolbox)
resnet101
(Deep Learning Toolbox)
squeezenet
(Deep Learning Toolbox)
vgg16
(Deep Learning Toolbox)
vgg19
(Deep Learning Toolbox)
xception
(Deep Learning Toolbox)
たとえば、次のように入力してネットワーク オブジェクトを読み込みます。
net = coder.loadDeepLearningNetwork('googlenet');
前述のリストにある Deep Learning Toolbox™ 関数には、関数のサポート パッケージをインストールする必要があります。事前学習済みの深層ニューラル ネットワーク (Deep Learning Toolbox)を参照してください。
codegen
またはアプリを使用してコードを生成する場合、coder.loadDeepLearningNetwork
を使用してエントリポイント関数の内部にネットワーク オブジェクトを読み込みます。以下に例を示します。
function out = myNet_predict(in) %#codegen persistent mynet; if isempty(mynet) mynet = coder.loadDeepLearningNetwork('matlab.mat'); end out = predict(mynet,in);
alexnet
、inceptionv3
、googlenet
、および resnet
といったサポート パッケージ関数として使用できる事前学習済みネットワークに対して、サポート パッケージ関数を直接指定することができます (たとえば mynet =
googlenet
と記述する)。
次に、エントリポイント関数のコードを生成します。以下に例を示します。
cfg = coder.config('mex'); cfg.TargetLang = 'C++'; cfg.DeepLearningConfig = coder.DeepLearningConfig('mkldnn'); codegen -args {ones(224,224,3,'single')} -config cfg myNet_predict
cnncodegen
を使用してコードを生成する場合、ネットワーク オブジェクトを MATLAB® ワークスペースで読み込みます。次に、このオブジェクトを cnncodegen
に渡します。以下に例を示します。
net = squeezenet; cnncodegen(net,'targetlib','arm-compute');
cnncodegen
| codegen
| coder.loadDeepLearningNetwork
| ssdObjectDetector
(Computer Vision Toolbox) | yolov2ObjectDetector
(Computer Vision Toolbox) | DAGNetwork
(Deep Learning Toolbox) | SeriesNetwork
(Deep Learning Toolbox) | trainNetwork
(Deep Learning Toolbox)