Получите предсказания для пакета изображений или для потока данных от живого входа камеры при помощи сгенерированного ядра процессора IP глубокого обучения. Выберите между режимом пакетной обработки данных и потоковым режимом в зависимости от доступных ресурсов платы, доступности входных данных и требований к приложению. Используйте MATLAB® запускать вашу нейронную сеть для глубокого обучения на сгенерированном ядре процессора IP глубокого обучения и получать сетевое предсказание из сгенерированного ядра процессора IP глубокого обучения.
Чтобы сгенерировать ядро процессора IP глубокого обучения, которое имеет необходимые интерфейсы для обработки нескольких кадров данных, создайте настройку процессора глубокого обучения при помощи dlhdl.ProcessorConfig
класс. В настройке процессора глубокого обучения:
Установите InputRunTimeControl
и OutputRunTimeControl
или к порту или к регистру.
Необходимо установить InputDataInterface
и OutputDataInterface
к ExternalMemory
.
Используйте dlhdl.buildProcessor
функция с настройкой процессора глубокого обучения возражает как входной параметр, чтобы сгенерировать ядро процессора IP глубокого обучения. Например, этот код генерирует ядро процессора IP глубокого обучения с интерфейсами, чтобы обработать несколько кадров данных.
hPC = dlhdl.ProcessorConfig; hPC.InputRunTimeControl = 'port'; hPC.OutputRunTimeControl = 'port' hPC.InputDataInterface = 'External Memory'; hPC.OutputDataInterface = 'External Memory'; dlhdl.buildProcessor(hPC);
Выберите между режимом пакетной обработки данных и потоковым режимом на основе ваших требований к ресурсам, доступности входных параметров и интерфейсной сложности. Эта таблица приводит различные критерии выбора и который режим выбрать на основе критериев выбора.
Критерии выбора | Режим пакетной обработки данных | Потоковый режим |
Доступность входных данных | Все входные данные должны быть доступными, прежде чем вы инициируете ядро процессора IP глубокого обучения, чтобы начать обрабатывать данные. | Данные о потоковом вводе как и когда данные доступны. |
Требования к памяти | Требует, чтобы ресурсы памяти большой емкости сохранили все входные данные и обработанные выходные данные, когда ядро процессора IP глубокого обучения обрабатывает все данные вместе. | Требует минимальных ресурсов памяти. Наименьшая требуемая память является дважды размером одной системы координат входных данных. |
Интерфейсная сложность | Простой протокол. Никакой протокол квитирования не требуется. | Комплексный протокол. Необходимо реализовать протокол квитирования. |
Можно сгруппировать интерфейсные сигналы в сигналы во время выполнения и квитирующие сигналы. Квитирующие сигналы используются только, когда режим обработки данных установлен в потоковый режим.
Эта таблица приводит сигналы во время выполнения, типы данных, интерфейсные типы и описание.
Имя сигнала | Тип данных | Интерфейсный тип (Порт или регистр) | Описание |
Done | логический | register | Сигнал, указывающий, что ядро процессора IP глубокого обучения обработало все входные данные и записало последний выход в память. |
InputStart | логический | register | Сигнал от пользователя к ядру процессора IP глубокого обучения, чтобы начать обрабатывать данные. |
FrameCount | целое число | register | Сигнал от пользователя к ядру процессора IP глубокого обучения определение количества систем координат входных данных. |
StreamingMode | логический | register | Сигнал от пользователя к ядру процессора IP глубокого обучения определение режима обработки данных. false выбирает буферный режим и true выбирает потоковый режим. |
StreamingDone | логический | register | Сигнал протестировать потоковый режим. Во время тестирования сигнал становится верным, когда вы получаете последний выход. |
InputStop | логический | register | Сигнал остановить непрерывный потоковый режим. Чтобы остановить непрерывный потоковый режим, установите этот сигнал на true . |
Эта таблица приводит сигналы квитирования, типы данных, интерфейсные типы и описание. Эти сигналы используются для потокового режима. Интерфейсный тип зависит от InputRunTimeControl
и OutputRunTimeControl
настройки. Например, если InputRunTimeControl
установлен в port
, интерфейсным типом является port
.
Имя сигнала | Тип данных | InputRunTimeControl или OutputRunTimeControl | Интерфейсный тип (Порт или регистр) | Описание |
InputAddr | uint32 | InputRunTimeControl | port/register | Сигнал, указывающий на местоположение адреса в памяти для загрузки входных данных. Используйте этот сигнал когда InputValid сигнал высок. |
InputNext | логический | InputRunTimeControl | port/register | Сигнал к ядру процессора IP глубокого обучения, чтобы указать, что следующая система координат данных доступна для обработки. Используйте этот сигнал когда InputValid сигнал высок. |
InputSize | uint32 | InputRunTimeControl | port/register | Сигнал, указывающий на размер следующей системы координат входных данных. Используйте этот сигнал когда InputValid сигнал высок. |
InputValid | логический | InputRunTimeControl | port/register | Сигнал от ядра процессора IP глубокого обучения указание, что входные данные допустимы. |
OutputAddr | uint32 | OutputRunTimeControl | port/register r | Сигнал, указывающий на местоположение адреса в памяти от того, где получить выходные данные. Используйте этот сигнал когда OutputValid сигнал высок. |
OutputNext | логический | OutputRunTimeControl | port/register | Сигнал к ядру процессора IP глубокого обучения, чтобы указать, что вы считали систему координат данных о текущей производительности. Используйте этот сигнал когда OutputValid сигнал высок. |
OutputSize | uint32 | OutputRunTimeControl | port/register | Сигнал, указывающий на размер следующей системы координат выходных данных. Используйте этот сигнал когда OutputValid сигнал высок. |
OutputValid | логический | OutputRunTimeControl | port/register | Сигнал от ядра процессора IP глубокого обучения указание, что выходные данные допустимы. |
Когда вы имеете в наличии все свои входные данные и доступ к большому пространству памяти двойной скорости передачи данных (DDR), обрабатываете несколько кадров при помощи режима пакетной обработки данных. Рисунок показывает сгенерированное ядро процессора IP глубокого обучения с интерфейсными сигналами для режима работы пакетной обработки данных. Вы используете MATLAB и dlhdl.Workflow
возразите, чтобы запустить вашу нейронную сеть для глубокого обучения на ядре процессора IP глубокого обучения. Получите сетевое предсказание, следует из ядра процессора IP глубокого обучения.
Чтобы обработать один кадр данных устанавливает FrameCount
укажите значение одному.
Эта блок-схема показывает операцию режима пакетной обработки данных.
Эта схема синхронизации показывает операцию режима пакетной обработки данных.
Загрузите все системы координат данных в последовательные входные местоположения памяти DDR, переключите inputStart
сигнал, ожидайте done
предупредите, чтобы пойти высоко, и затем считать выходные данные из последовательных выходных местоположений памяти DDR. clientAction
сигналы представляют ваши действия загрузки входных данных и чтения выходных данных в память DDR.
Когда ваши входные данные передают потоком в, когда у вас есть доступ к ограниченному пространству памяти двойной скорости передачи данных (DDR), и когда ваше приложение требует протоколов квитирования, обработайте несколько кадров при помощи потокового режима. Рисунок показывает сгенерированное ядро процессора IP глубокого обучения с интерфейсными сигналами для потокового режима операции. В этом рисунке, живых потоковых данных о камере к проекту под тестом (DUT) предварительной обработки изображений, который реализует протокол квитирования потокового режима, чтобы взаимодействовать со сгенерированным ядром процессора IP глубокого обучения.
Дата может быть передана потоком к ядру процессора IP глубокого обучения в двух режимах:
Потоковые Данные до значения количества системы координат — В этом режиме процессор глубокого обучения обрабатывают кадры данных до значения, заданного в FrameCount
. После обработки всех кадров базовые наборы процессора IP глубокого обучения Done
предупредите к true
.
Чтобы обработать один кадр данных устанавливает FrameCount
укажите значение одному.
Непрерывный потоковый режим — В этом режиме, ядро процессора IP глубокого обучения обрабатывает кадры данных, пока вы не устанавливаете InputStop
значение к true
.
Эта блок-схема показывает операцию режима обработки данных потокового режима. Операции чтения и операции записи происходят параллельно. Набор значений в InputFrameNumberLimit
задает количество пробелов в DDR для кольцевых буферов ввода и вывода. Если вы используете больший кольцевой buffer size процессы ядра процессора IP глубокого обучения более входные изображения, прежде чем вы считаете первый выходной результат.
Эта блок-схема показывает операцию потокового режима до количества системы координат. Операции чтения и операции записи происходят параллельно.
Эта схема синхронизации показывает операцию потокового режима до количества системы координат.
Установите InputFrameNumberLimit
аргумент compile
метод к значению, больше, чем два.
Установите StreamingMode
предупредите к true
.
Определите номер систем координат данных к процессу в FrameCount
регистр.
Пульсируйте inputStart
сигнал. Эти следующие действия могут быть выполнены параллельно:
Ожидайте inputValid
предупредите, чтобы стать true
и затем:
Используйте inputAddr
и inputSize
сигналы записать следующие входные данные структурируют к памяти DDR.
Пульсируйте inputNext
сигнал.
Ожидайте outputValid
предупредите, чтобы стать true
и затем:
Используйте outputAddr
и outputSize
сигналы считать обработанный кадр выходных данных.
Пульсируйте outputNext
сигнал.
Если ядро процессора IP глубокого обучения обработало все кадры, оно устанавливает done
предупредите к true
.
clientAction
сигналы представляют ваши действия загрузки входных данных и чтения выходных данных в память DDR.
Можно постоянно передавать данные потоком к процессору глубокого обучения в непрерывном потоковом режиме. Чтобы использовать непрерывный потоковый режим, установите FrameCount
обнулять. Остановить устройство обработки данных InputStop
предупредите к true
.
Эта блок-схема показывает операцию непрерывного потокового режима. Операции чтения и операции записи происходят параллельно.
Эта схема синхронизации показывает операцию непрерывного потокового режима.
Установите InputFrameNumberLimit
аргумент compile
метод к значению, больше, чем два.
Установите StreamingMode
предупредите к true
.
Определите номер систем координат данных к процессу в FrameCount
укажите, чтобы обнулить.
Пульсируйте inputStart
сигнал. Эти следующие действия могут быть выполнены параллельно:
Ожидайте inputValid
предупредите, чтобы стать true
и затем:
Используйте inputAddr
и inputSize
сигналы записать следующие входные данные структурируют к памяти DDR.
Пульсируйте inputNext
сигнал.
Ожидайте outputValid
предупредите, чтобы стать true
и затем:
Используйте outputAddr
и outputSize
сигналы считать обработанный кадр выходных данных.
Пульсируйте outputNext
сигнал.
Если вы записали все входные данные и читали, все выходные данные пульсируют InputStop
сигнал.
Ядро IP глубокого обучения использует три Основных интерфейса AXI4, чтобы сохранить и обработать:
Данные об активации
Данные о весе
Отладочные данные
Процессор глубокого обучения читает и записывает данные от DDR на основе режима работы обработки данных при помощи этих Основных интерфейсов AXI4.
Ядро IP процессора глубокого обучения | Используйте выход компилятора для системной интеграции | Формат данных внешней памяти