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