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, чтобы вызвать функцию тулбокса Deep Learning 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.

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

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

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

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

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

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

свернуть все

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

Ограничения

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

Введенный в R2017b