Можно сгенерировать код для предварительно обученной сверточной нейронной сети (CNN). Чтобы предоставить сеть генератору кода, загрузите SeriesNetwork
или DAGNetwork
объект от обучившего сеть.
coder.loadDeepLearningNetwork
Можно загрузить сетевой объект от любой сети, которая поддерживается для генерации кода при помощи coder.loadDeepLearningNetwork
. Можно задать сеть из MAT-файла. MAT-файл должен содержать только сеть, чтобы загрузиться.
Например, предположите, что вы создаете обучивший сеть объект под названием myNet
при помощи trainNetwork
функция. Затем вы сохраняете рабочую область путем ввода save
. Это создает файл под названием matlab.mat
это содержит сетевой объект. Загружать сетевой объект myNet
, Введите:
net = coder.loadDeepLearningNetwork('matlab.mat');
Можно также задать сеть путем обеспечения имени функции, которая возвращает предварительно обученный SeriesNetwork
или DAGNetwork
объект, такой как:
Например, загрузите сетевой объект путем ввода:
net = coder.loadDeepLearningNetwork('googlenet');
Функции Deep Learning Toolbox™ в предыдущем списке требуют, чтобы вы установили пакет поддержки для функции. Смотрите Предварительно обученные Глубокие нейронные сети (Deep Learning Toolbox).
Если вы генерируете код при помощи codegen
или приложение, загрузите сетевой объект в вашей функции точки входа при помощи coder.loadDeepLearningNetwork
. Например:
function out = googlenet_predict(in) %#codegen persistent mynet; if isempty(mynet) mynet = coder.loadDeepLearningNetwork('googlenet'); 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 googlenet_predict
Если вы генерируете код при помощи cnncodegen
, загрузите сетевой объект в рабочей области MATLAB®. Затем передайте объект cnncodegen
. Например:
net = squeezenet; cnncodegen(net,'targetlib','arm-compute');
DAGNetwork
| SeriesNetwork
| cnncodegen
| codegen
| coder.loadDeepLearningNetwork
| trainNetwork