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

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