The compile метод:
Генерирует карту внешнего адреса памяти.
Оптимизирует сети для развертывания.
Разделяет сети на ножки для развертывания.
Чтобы интегрировать сгенерированное IP-ядро процессора глубокого обучения в ваш системный исходный проект, используйте compile выходы метода.
Когда вы создаете dlhdl.Workflow объект и использовать compile способ, формируют карту внешнего адреса памяти. The compile метод генерирует эти смещения адреса на основе нейронной сети для глубокого обучения и целевой платы: Используйте карту адреса для:
Загрузите входы сети.
Загрузите инструкции IP-ядра процессора глубокого обучения.
Загрузка весов и смещений сети.
Получение результатов выхода.
The compile метод генерирует эти смещения адреса:
InputDataOffset - Смещение адреса, где загружаются входные изображения.
OutputResultOffset - Выходные результаты записываются начиная с этого смещения адреса.
SchedulerDataOffset - Смещение адреса, где записываются данные активации во время выполнения планировщика. Данные активации во время выполнения включают информацию, такую как передача обслуживания между различными ядрами процессора глубокого обучения, инструкции для различных ядер процессора глубокого обучения и так далее.
SystemBufferOffset - Не используйте адрес памяти, начиная с этого смещения и заканчивая в начале InstructionDataOffset.
InstructionDataOffset - Все инструкции по строению слоя (LC) записываются начиная с этого смещения адреса.
ConvWeightDataOffset - Все веса модулей конв-обработки записываются начиная с этого смещения адреса.
FCWeightDataOffset - Все веса полносвязных модулей обработки (FC) записываются начиная с этого смещения адреса.
EndOffset - смещение конца памяти DDR для сгенерированного процессора глубокого обучения IP.
В примере отображается карта внешней памяти, сгенерированная для сети распознавания ResNet-18, которая использует zcu102_single битовый поток. См., Скомпилируйте сетевой объект diagnet.
compile функция оптимизирует сети для развертывания путем идентификации слоев сети, которые можно выполнить за одну операцию на оборудовании и затем объединить их вместе. compile функция выполняет эти слои слияния и оптимизации:
Нормализация партии . (batchNormalizationLayer) и 2-D слой свертки (convolution2dLayer).
2-D нулевой слой заполнения (nnet.keras.layer.ZeroPadding2dLayer) и 2-D слой свертки (convolution2dLayer).
2-D нулевой слой заполнения (nnet.keras.layer.ZeroPadding2dLayer) и 2-D максимального слоя опроса (maxPooling2dLayer).
Этот выход кода является примером оптимизации компилятора в журнале компилятора.
Optimizing series network: Fused 'nnet.cnn.layer.BatchNormalizationLayer' into 'nnet.cnn.layer.Convolution2DLayer'
compile функция разделяет сеть на ноги во время компиляции. Ветвь является подмножеством сети, которую можно преобразовать в последовательную сеть. compile функция группирует ноги на основе выходного формата слоев. Формат выхода уровня определяется как формат данных модуля глубокого обучения, который обрабатывает этот уровень. Формат выхода слоев - conv, fc или adder. Для примера, на этом изображении, compile функция группирует все слои в Leg 2 вместе, потому что они имеют формат выхода conv. Сведения о выходных форматах слоев см. в разделе Поддерживаемые слои.

На этом изображении показаны ноги ResNet-18 сети, созданной compile функция и ножки, подсвеченные в архитектуре ResNet-18 слоя.
