exponenta event banner

coder.loadDeepLearningNetwork

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

Описание

net = coder.loadDeepLearningNetwork(filename) загружает предварительно подготовленное глубокое обучение SeriesNetwork (инструментарий глубокого обучения), DAGNetwork (инструментарий глубокого обучения), yolov2ObjectDetector(Панель инструментов компьютерного зрения), или ssdObjectDetector (Computer Vision Toolbox) объект, сохраненный в filename MAT-файл. 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 и создать код C++ для этой сети.

Получение 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 папка. Папка содержит код C++ для функции точки входа 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 должен содержать только загружаемую сеть.

См. также

Функции

Объекты

  • (Панель инструментов компьютерного зрения) | (Панель инструментов компьютерного зрения) | (инструментарий для глубокого обучения) | (инструментарий для глубокого обучения)
Представлен в R2017b