coder.CuDNNConfig

Параметры для настройки генерации кода глубокого обучения с помощью библиотеки CUDA Глубокой Нейронной Сети

Описание

The 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;

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

Введенный в R2018b