Загрузите предварительно обученные сети для генерации кода

Можно сгенерировать код для предварительно обученной сверточной нейронной сети (CNN). Чтобы предоставить сеть генератору кода, загрузите SeriesNetwork или сетевой объект DAGNetwork от обучившего сеть.

Загрузите сеть при помощи coder.loadDeepLearningNetwork

Можно загрузить сетевой объект от любой сети, которая поддерживается для генерации кода при помощи coder.loadDeepLearningNetwork. Можно задать сеть как MAT-файл. Например:

net = coder.loadDeepLearningNetwork('alexnet.mat')
Можно также задать сеть путем обеспечения имени функции, которая возвращает предварительно обученный SeriesNetwork или сетевой объект DAGNetwork. Например, эти функции Deep Learning Toolbox™ возвращают объект предварительно обученной сети:

Функции Deep Learning Toolbox в предыдущем списке требуют, чтобы вы установили пакет поддержки для функции. Смотрите Предварительно обученные Глубокие нейронные сети (Deep Learning Toolbox).

Следующий код загружает сетевой объект путем вызывания функции alexnet.

net = coder.loadDeepLearningNetwork('alexnet')

Предоставьте сетевой объект генератору кода

Если вы генерируете код при помощи codegen или приложение, загружаете сетевой объект в вашей функции точки входа при помощи coder.loadDeepLearningNetwork. Например:

function out = alexnet_predict(in) %#codegen

persistent mynet;

if isempty(mynet)
    mynet = coder.loadDeepLearningNetwork('alexnet');
end
out = predict(mynet,in); 

Поскольку некоторые поддерживают функции пакета, такие как alexnet, inceptionv3, googlenet и resnet, можно непосредственно задать функцию пакета поддержки в функции точки входа. Например:

function out = alexnet_predict(in) %#codegen

persistent mynet;

if isempty(mynet)
    mynet = alexnet;
end
out = predict(mynet,in); 

Если вы генерируете код при помощи cnncodegen, загружаете сетевой объект в рабочей области MATLAB®. Затем передайте объект cnncodegen. Например:

net = alexnet;
cnncodegen(net,'targetlib','cudnn');

Похожие темы