coder.loadDeepLearningNetwork

Загрузите модель нейронной сети для глубокого обучения

Описание

net = coder.loadDeepLearningNetwork(filename) загружает предварительно обученное глубокое обучение SeriesNetwork (Deep Learning Toolbox), DAGNetwork (Deep Learning Toolbox), yolov2ObjectDetector (Computer Vision Toolbox) или ssdObjectDetector Объект (Computer Vision Toolbox), сохраненный в filename Matfile. filename должен быть допустимый MAT-файл, существующий на MATLAB® путь, содержащий один SeriesNetwork, DAGNetwork, yolov2ObjectDetector, или ssdObjectDetector объект. MAT-файл должен содержать только сеть, чтобы загрузиться.

пример

net = coder.loadDeepLearningNetwork(functionname) вызывает функцию, которая возвращает предварительно обученное глубокое обучение SeriesNetwork, DAGNetwork, yolov2ObjectDetector, или ssdObjectDetector объект. functionname должно быть имя функции, существующей на пути MATLAB, который возвращает SeriesNetwork, DAGNetwork, yolov2ObjectDetector, или ssdObjectDetector объект.

пример

net = coder.loadDeepLearningNetwork(___,network_name) совпадает с net = coder.loadDeepLearningNetwork(filename) с опцией, чтобы назвать класс C++ сгенерированным от сети. network_name описательное имя для сетевого объекта, сохраненного в MAT-файле, или указало функцией. Сетевым именем должен быть char введите, который является допустимым идентификатором на C++.

Используйте эту функцию при генерации кода от вывода сетевого объекта. Эта функция генерирует класс C++ от этой сети. Имя класса выведено из имени MAT-файла или имени функции.

Примеры

свернуть все

Использование coder.loadDeepLearningNetwork функционируйте, чтобы загрузить VGG-16 серийная сеть и генерирует Код С++ для этой сети.

Получите MAT-файл, содержащий предварительно обученный VGG-16 сеть.

url = 'https://www.mathworks.com/supportfiles/gpucoder/cnn_models/VGG/vgg16.mat';
websave('vgg16.mat',url);

Создайте функцию точки входа myVGG16 это использует coder.loadDeepLearningNetwork функционируйте, чтобы загрузить vgg16.mat в персистентный mynet SeriesNetwork объект.

function out = myVGG16(in)

persistent mynet;
if isempty(mynet)
    mynet = coder.loadDeepLearningNetwork('vgg16.mat', 'myVGGnet');
end

out = predict(mynet,in);

Постоянный объект старается не восстанавливать и перезагружать сетевой объект во время последующих вызовов функции, чтобы вызвать predict метод на входе.

Входной слой предварительно обученного VGG-16 сеть принимает изображения размера 224x224x3. Используйте следующие строки кода, чтобы считать входное изображение из графического файла и изменить размер его к 224x224.

in = imread('peppers.png');
in = imresize(in,[224,224]);

Создайте coder.config объект настройки для генерации кода MEX и набора выходной язык на C++. На объекте настройки, набор DeepLearningConfig с targetlib как 'mkldnn'. codegen функция должна определить размер, класс и сложность входных параметров функции MATLAB. Используйте -args опция, чтобы задать размер входа к функции точки входа. Используйте -config опция, чтобы передать объект настройки кода.

cfg = coder.config('mex');
cfg.TargetLang = 'C++';
cfg.DeepLearningConfig = coder.DeepLearningConfig('mkldnn'); 
codegen -args {ones(224,224,3,'uint8')} -config cfg myVGG16 -report;

codegen команда помещает все сгенерированные файлы в codegen папка. Папка содержит Код С++ для функции точки входа myVGG16.cpp, заголовок и исходные файлы, содержащие определения класса C++ для замысловатой нейронной сети (CNN), веса и файлов смещения.

Вызовите VGG-16 предскажите на входе, отображают и отображают лучшие пять предсказанных меток.

predict_scores = myVGG16_mex(in);
[scores,indx] = sort(predict_scores, 'descend');
net = coder.loadDeepLearningNetwork('vgg16.mat');
classNames = net.Layers(end).Classes;
disp(classNames(indx(1:5)));
     bell pepper 
     cucumber 
     grocery store 
     acorn squash 
     butternut squash 

Использование coder.loadDeepLearningNetwork функционируйте, чтобы загрузить resnet50 серийная сеть и генерирует CUDA® код для этой сети.

Создайте функцию точки входа resnetFun это использует coder.loadDeepLearningNetwork функционируйте, чтобы вызвать функцию тулбокса Deep Learning Toolbox™ resnet50. Эта функция возвращает предварительно обученный ResNet-50 сеть.

function out = resnetFun(in)

persistent mynet;
if isempty(mynet)
    mynet = coder.loadDeepLearningNetwork('resnet50', 'myresnet');
end

out = predict(mynet,in);

Постоянный объект старается не восстанавливать и перезагружать сетевой объект во время последующих вызовов функции, чтобы вызвать predict метод на входе.

Входной слой предварительно обученного ResNet-50 сеть принимает изображения размера 224x224x3. Чтобы считать вход отображают от графического файла и изменить размер его к 224x224, используйте следующие строки кода:

in = imread('peppers.png');
in = imresize(in,[224,224]);

Создайте coder.gpuConfig объект настройки для генерации кода MEX и набора выходной язык на C++. codegen функция должна определить размер, класс и сложность входных параметров функции MATLAB. Используйте -args опция, чтобы задать размер входа к точке входа функционирует и -config опция, чтобы передать объект настройки кода.

cfg = coder.gpuConfig('mex');
cfg.TargetLang = 'C++';
cfg.DeepLearningConfig = coder.DeepLearningConfig('cudnn'); 
codegen -args {ones(224,224,3,'uint8')} -config cfg resnetFun -report;

codegen команда помещает все сгенерированные файлы в codegen папка. Это содержит код CUDA для функции точки входа resnetFun.cu, заголовок и исходные файлы, содержащие определения класса C++ для замысловатой нейронной сети (CNN), веса и файлов смещения.

Входные параметры

свернуть все

Задает имя MAT-файла, содержащего предварительно обученный SeriesNetwork, DAGNetwork, yolov2ObjectDetector, или ssdObjectDetector объект.

Типы данных: string

Задает имя функции, которое возвращает предварительно обученный SeriesNetwork, DAGNetwork, yolov2ObjectDetector, или ssdObjectDetector объект.

Типы данных: string

Описательное имя для сетевого объекта, сохраненного в MAT-файле. Это должен быть char введите, который является допустимым идентификатором на C++.

Типы данных: char

Выходные аргументы

свернуть все

Сетевой вывод, возвращенный как SeriesNetwork, DAGNetwork, yolov2ObjectDetector, или ssdObjectDetector объект.

Ограничения

  • coder.loadDeepLearningNetwork не поддерживает MAT-файлы загрузки с несколькими сетями.

  • MAT-файл должен содержать только сеть, чтобы загрузиться.

Расширенные возможности

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

Генерация кода графического процессора
Сгенерируйте код CUDA® для NVIDIA® графические процессоры с помощью GPU Coder™.

Введенный в R2017b