coder.CuDNNConfig

Параметры, чтобы сконфигурировать генерацию кода глубокого обучения с библиотекой CUDA Deep Neural Network

Описание

coder.CuDNNConfig объект содержит NVIDIA® cuDNN определенные параметры это codegen использование для генерации CUDA® код для глубоких нейронных сетей.

Использовать coder.CuDNNConfig объект для генерации кода, присвойте его DeepLearningConfig свойство coder.gpuConfig возразите, что вы передаете codegen.

Создание

Создайте cuDNN объект настройки при помощи coder.DeepLearningConfig функция с целевой библиотекой установила как 'cudnn'.

Свойства

развернуть все

Включите или отключите автоматическую настраивающую опцию. Включение автоматической настройки позволяет cuDNN библиотеке находить самые быстрые алгоритмы свертки. Это увеличивает эффективность для больших сетей, таких как SegNet и ResNet

Задайте точность расчетов вывода в поддерживаемых слоях. При выполнении вывода в 32-битных плаваниях используйте 'fp32'. Для 8-битного целого числа используйте 'int8'. Значением по умолчанию является 'fp32'.

INT8 точность требует, чтобы графический процессор CUDA с минимумом вычислил возможность 6,1. Вычислите возможность 6,2, не поддерживает INT8 точность. Используйте ComputeCapability свойство GpuConfig объект установить соответствующее вычисляет значение возможности.

Примечание

При выполнении вывода в INT8 точность с помощью cuDNN версию 8.1.0, проблемы в библиотеке NVIDIA могут вызвать значительное ухудшение в эффективности.

Местоположение MAT-файла, содержащего калибровочные данные. Значением по умолчанию является ''. Эта опция применима только когда DataType установлен в 'int8'.

При выполнении квантования глубокой сверточной нейронной сети, calibrate (Deep Learning Toolbox) функция осуществляет сеть и собирает динамические диапазоны весов и смещений в свертке и полносвязных слоях сети и динамические диапазоны активаций во всех слоях сети. Чтобы сгенерировать код для квантованной сети, сохраните результаты calibrate функционируйте к MAT-файлу и задайте местоположение этого MAT-файла к генератору кода с помощью этого свойства. Для получения дополнительной информации смотрите Генерацию кода для Квантованных Нейронных сетей для глубокого обучения.

Значение только для чтения, которое задает имя целевой библиотеки.

Примеры

свернуть все

Создайте функцию точки входа resnet_predict это использует coder.loadDeepLearningNetwork функционируйте, чтобы загрузить resnet50 (Deep Learning Toolbox) SeriesNetwork объект.

function out = resnet_predict(in)

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

out = predict(mynet,in);

Создайте coder.gpuConfig объект настройки для генерации кода MEX.

cfg = coder.gpuConfig('mex');

Установите выходной язык на C++.

cfg.TargetLang = 'C++';

Создайте coder.CuDNNConfig объект настройки глубокого обучения и присвоение это к DeepLearningConfig свойство cfg объект настройки.

cfg.DeepLearningConfig = coder.DeepLearningConfig('cudnn');

Используйте -config опция codegen функционируйте, чтобы передать cfg объект настройки. codegen функция должна определить размер, класс и сложность MATLAB® входные параметры функции. Используйте -args опция, чтобы задать размер входа к функции точки входа.

codegen -args {ones(224,224,3,'single')} -config cfg resnet_predict;

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

Введенный в R2018b