coder.loadDeepLearningNetwork

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

Синтаксис

net = coder.loadDeepLearningNetwork(filename)
net = coder.loadDeepLearningNetwork(functionname)
net = coder.loadDeepLearningNetwork(___,network_name)

Описание

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

пример

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

пример

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

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

Примеры

свернуть все

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

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

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

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

function out = alexneteg(in)

persistent mynet;
if isempty(mynet)
    mynet = coder.loadDeepLearningNetwork('alexnet.mat', 'myalexnet');
end

out = predict(mynet,in);

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

Входной уровень предварительно обученной сети AlexNet принимает изображения размера 227x227x3. Используйте следующие строки кода, чтобы считать входное изображение из графического файла и изменить размер его к 227x227.

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

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

cfg = coder.gpuConfig('mex');
cfg.TargetLang = 'C++';
cfg.DeepLearningConfig = coder.DeepLearningConfig('cudnn'); 
codegen -args {ones(227,227,3,'single')} -config cfg alexneteg

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

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

Создайте функцию точки входа alexnetfun, который использует функцию coder.loadDeepLearningNetwork, чтобы вызвать Глубокое Изучение функции тулбокса Toolbox™ alexnet. Эта функция возвращает предварительно обученную сеть AlexNet.

function out = alexnetfun(in)

persistent mynet;
if isempty(mynet)
    mynet = coder.loadDeepLearningNetwork('alexnet', 'myalexnet');
end

out = predict(mynet,in);

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

Входной уровень предварительно обученной сети AlexNet принимает изображения размера 227x227x3. Чтобы считать входное изображение из графического файла и изменить размер его к 227x227, используйте следующие строки кода:

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

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

cfg = coder.gpuConfig('mex');
cfg.TargetLang = 'C++';
cfg.DeepLearningConfig = coder.DeepLearningConfig('cudnn'); 
codegen -args {ones(227,227,3,'single')} -config cfg alexnetfun

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

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

свернуть все

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

Типы данных: строка

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

Типы данных: строка

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

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

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

свернуть все

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

Ограничения

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

Введенный в R2017b

Была ли эта тема полезной?