Программное обеспечение предоставляет типовое IP-ядро процессора глубокого обучения, которое не зависит от цели и может быть развернуто на любой пользовательской платформе, которую вы задаете. Процессор может использоваться повторно и совместно использоваться, чтобы включать глубокие нейронные сети, которые имеют различные размеры и параметры слоя. Используйте этот процессор для быстрого прототипирования глубоких нейронных сетей от MATLAB®, а затем разверните сеть в FPGA.
Этот рисунок показывает архитектуру процессора глубокого обучения.
Чтобы проиллюстрировать архитектуру процессора глубокого обучения, рассмотрим пример классификации изображений.
Можно хранить входные изображения, веса и выходные изображения во внешней памяти DDR. Процессор состоит из четырех интерфейсов AXI4 Master, которые взаимодействуют с внешней памятью. Используя один из интерфейсов AXI4 Master, можно загрузить входные изображения в ОЗУ блоков (BRAM
). Блок RAM обеспечивает активацию Generic Convolution Processor
.
The Generic Convolution Processor
выполняет эквивалентную операцию одного слоя свертки. Используя другой интерфейс AXI4 Master, веса для операции свертки предоставляются Generic Convolution Processor
. The Generic Convolution Processor
затем выполняет операцию свертки на вход изображении и обеспечивает активацию для Activation Normalization
. Процессор является типовым, потому что он может поддерживать тензоры и формы различных размеров.
На основе нейронной сети, которую вы предоставляете, Activation Normalization
модуль служит для добавления нелинейности ReLU, слоя maxpool, или выполняет нормализацию локального отклика (LRN). Вы видите, что процессор имеет два Activation Normalization
модулей. Один модуль измерения следует за Generic Convolution Processor
. Другой модуль следует за Generic FC Processor
.
В зависимости от количества слоев свертки, которые вы имеете в предварительно обученной сети, Conv Controller (Scheduling)
действует как буферы ping-pong. The Generic Convolution Processor
и Activation Normalization
может обрабатывать по одному слою за раз. Чтобы обработать следующий слой, Conv Controller (Scheduling)
возвращается к BRAM, а затем выполняет операции свертки и нормализации активации для всех слоев свертки в сети.
The Generic FC Processor
выполняет эквивалентную операцию одного полносвязного слоя (FC). Используя другой интерфейс AXI4 Master, веса для полносвязного слоя предоставляются Generic FC Processor
. The Generic FC Processor
затем выполняет операцию полносвязного слоя на вход изображении и обеспечивает активацию для Activation Normalization
модуль. Этот процессор также является типовым, потому что он может поддерживать тензоры и формы различных размеров.
The FC Controller (Scheduling)
работает аналогично Conv Controller (Scheduling)
. The FC Controller (Scheduling)
координаты с FIFO
действовать как буферы ping-pong для выполнения операции и Activation Normalization
полносвязного слоя в зависимости от количества слоев FC и функций ReLU, maxpool или LRN, которые вы имеете в своей нейронной сети. После
Generic FC Processor
и Activation Normalization
модули обрабатывают все системы координат в изображении, предсказания или счета передаются через интерфейс AXI4 Master и хранятся во внешней памяти DDR.
Одним из приложений пользовательского IP-ядра процессора глубокого обучения является управляемый MATLAB процессор глубокого обучения. Чтобы создать этот процессор, интегрировайте IP-адрес процессора глубокого обучения с HDL Verifier™ MATLAB в AXI Master IP с помощью AXI4 ведомого интерфейса. Через интерфейс JTAG или PCI express можно импортировать различные предварительно обученные нейронные сети из MATLAB, выполнить операции, заданные сетью в IP процессоре глубокого обучения, и вернуть результаты классификации в MATLAB.
Для получения дополнительной информации смотрите MATLAB Controlled Глубокое Обучение Processor.