Введение в превосходные проекты Verilog/FPGA с открытым исходным кодом (21) - Сверточная нейронная сеть (CNN)
Введение в превосходные проекты Verilog/FPGA с открытым исходным кодом (21) - Сверточная нейронная сеть (CNN)

представлять

В глубоком обучении сверточная нейронная сеть (CNN или ConvNet) — это тип искусственной нейронной сети (ИНС), наиболее часто используемый для анализа визуальных изображений.

CNN также называют инвариантными по сдвигу или пространственно-инвариантными искусственными нейронными сетями (SIANN). Они основаны на архитектуре с общим весом ядер или фильтров свертки, которая скользит по входным функциям и обеспечивает функции, называемые функциями отображения трансляционного эквивариантного ответа. У них есть приложения для распознавания изображений и видео, систем рекомендаций, классификации изображений, сегментации изображений, анализа медицинских изображений, обработки естественного языка, интерфейсов «мозг-компьютер» и финансовых временных рядов.

CNN — это регуляризованная версия многослойного перцептрона. Многослойный персептрон обычно представляет собой полностью связную сеть, т. е. каждый нейрон одного слоя связан со всеми нейронами следующего слоя. «Полная связность» этих сетей делает их склонными к переобучению данных. Типичные способы регуляризации или предотвращения переобучения включают в себя: наложение штрафов на параметры во время обучения (например, снижение веса) или сокращение связности (пропуск соединений, выпадение и т. д.). CNN используют различные методы регуляризации: они используют иерархические шаблоны в данных и используют меньшие, более простые шаблоны, запечатленные в фильтре для сборки узоров возрастающей сложности. Таким образом, по шкале связности и сложности CNN находятся на нижнем полюсе.

По сравнению с другими алгоритмами классификации изображений, CNN используют относительно небольшую предварительную обработку. Это означает, что сеть учится оптимизировать фильтры (или ядра) посредством автоматического обучения, тогда как в традиционных алгоритмах эти фильтры разрабатываются вручную. Эта независимость от предварительных знаний и вмешательства человека в извлечение признаков является основным преимуществом.

cnn_hardware_acclerator_for_fpga

https://github.com/sumanth-kalluri/cnn_hardware_acclerator_for_fpga

https://thedatabus.io/introduction

Это полностью параметрическое Verilog Внедрите CNN, чтобы сомневаться FPGA начальствоизсвертканервсетьрассуждение

Программные инструменты:

Дизайн - Xilinx Vivado 2017

Проверка — инструменты командной строки Python 3.6 и Xilinx ISE 14.7

convolution_network_on_FPGA

https://github.com/hunterlew/convolution_network_on_FPGA

описывать

В этом проекте используется ISE 14.7 и vertix-7 FPGA Строить. Используются определенные сложности при выполнении стратегий. 7 Прямой расчет сети слоев. Сначала используйте MatConvNet в MSTAR Тренируйтесь на наборе данных SAR целевая классификационная сеть и использование ранняя остановка. Затем используйте Matlab Преобразуйте веса и введите в FPGA Можно загрузить COE документ. Далее, нативный дизайн verilog Модель, написанная для завершения прямого расчета. Использование системы 16 данные с фиксированной точкой для обеспечения точности. Оказывается, это стоит меньше 1 мс, лучше, чем у других вычислительных платформ.

ускоряться

Для первого преобразования требуется FPGA Существует компромисс между ресурсами и скоростью, принимая во внимание размер входных данных и веса при первом преобразовании: если слой больше, то слой должен использовать структуру сдвигового регистра. Еще одно преобразование: слой требует только использования структуры трубы. Обратите внимание, что иметь 18 файлы с m_conv_1 Именованный, с указанием первого conv Есть 18 сдвиговый регистр.

Для ограничений пропускной способности второй уровень преобразования использует схему распараллеливания группировки каналов. использовать v7-415t и v7-485t FPGA Для сравнения они используют разные номера групп (4 vs 1). Можно отметить, что файл CNN_top.v планировать в,Содержит группировку каналов управленияикомбинированные сигналы“ram_ready”。

CNN-FPGA

https://github.com/QShen3/CNN-FPGA

Имеются следующие модули:

Conv2d

проиллюстрировать:

Модуль свертки может выполнять двумерную свертку. Поддерживает несколько ядер свертки, различную длину синхронизации, возможность включения заполнения края 0 и т. д.

Настраиваемые параметры:

PADDINGENABLE Если край заполнен 0, 1 означает да, 0 означает нет 0

Ввод и вывод:

Max_pool

проиллюстрировать:

Модуль максимального пула может выполнять максимальные операции пула на входе.

Настраиваемые параметры:

Ввод и вывод:

FPGA-CNN

https://github.com/dem123456789/FPGA-CNN

CNN реализован с помощью FPGA:

CNN.v — это проект верхнего уровня, инициализирующий A, B и I. Шаблон представляет собой модуль слоя 16x16.

SixteenbySixteen.java генерирует код Verilog

clacc

https://github.com/taoyilee/clacc

Первоначально это был курсовой проект по аппаратному обеспечению глубокого обучения в Университете Цинхуа, лекции по которому читал профессор Линь Юньлун. Этот курс эквивалентен CS231n Стэнфордского университета (http://cs231n.stanford.edu/).

Глубокое обучение затруднение (сверточная нейронная сеть)

Это в Verilog Реализация похожа на MIT Eyeriss глубокое обучениеускорятьсяустройство

Примечание: clacc означает сверточный слой сложности.

RTL-Implementation-of-Two-Layer-CNN

https://github.com/Haleski47/RTL-Implementation-of-Two-Layer-CNN

https://github.com/Di5h3z/ECE-564-Convolutional-Neural-Network-Accelerator

Двухслойная CNN с детальным проектированием

Детальная проектная документация:

https://github.com/Haleski47/RTL-Implementation-of-Two-Layer-CNN/blob/master/report/Apar%20Bansal%20ECE564%20Project.pdf

NTHU-ICLAB

https://github.com/LeoTheBestCoder/NTHU-ICLAB

Это очень подробный проект, предоставленный IC LAB Университета Цинхуа, который постепенно внедряет CNN и поставляется с тестовым проектом.

Ниже приведены функции каждого шага, и каждый шаг имеет подробную проектную документацию.

Окончательная реализация: классификация цифр с использованием CNN.

ES203-COA-CNN

https://github.com/akcgjc007/ES203-COA-CNN

Конкретный процесс реализации:

кодпредставлять:

https://www.youtube.com/watch?v=3J2X-j0z2M8

результат:

MNIST_CNN_HDL

https://github.com/makifozkanoglu/MNIST_CNN_HDL

https://github.com/flystandard1/CNN_hardware_ECE1718_UofT

через оборудованиеускорятьсяпродвигать CNN-mnist производительность

Папка «design_files» содержит все файлы дизайна в оборудовании.

Папка «verification_files» — это среда проверки файлов дизайна.

В папке «веса» находятся mnist и Вес входного изображения

CNN-Implementation-in-Verilog

https://github.com/boaaaang/CNN-Implementation-in-Verilog

использовать Python & Verilog Реализация сверточной нейронной сети

Блок-схема реализации:

Моделирование формы волны

CNN_Core

https://github.com/0x5b25/CNN_Core

  • использовать Altera Avalon-MM автобус
  • использовать quartus prime ide существовать Stratix IV компилировать наитест。
  • Дополнительную информацию о достоинствах можно найти в файле Instructions.txt.

CNN-Accelerator-VLSI

https://github.com/lirui-shanghaitech/CNN-Accelerator-VLSI

Подробные требованиясуществовать./resource/Project_2.0.pdfЕстьподробныйпредставлять。

Некоторые из основных требований перечислены ниже:

  • Разрядность входной карты признаков и вес равны 8 бит, вывод 25 битовые данные.
  • Пропускная способность входной карты объектов составляет 8x8 бит.,Весовая полоса пропускания также составляет 8x8 бит (одновременно можно считывать максимум 8 входных карт признаков и 8 весов).
  • Выходная полоса пропускания составляет 2x25 бит (максимум 2 вывода, записываемых в основную память одновременно)

Результат следующий:

Примечание. Некоторые файлы, необходимые для этого проекта, не являются общедоступными, однако этот проект можно синтезировать в FPGA.

CNN-FPGA

https://github.com/omarelhedaby/CNN-FPGA

В ЗИНКЕ Реализация CNN на FPGA, классификация рукописных цифр в базе данных MNIST

сеть Conv2D->Tanh Activation->AvgPool->Conv2D->Tanh Activation->AvgPool->Conv2D->Tanh Activation->Полностью связный слой->Relu->Полностью связный слой->Softmax

Проект очень полный. Хотя файл Readme не очень полный, он содержит файлы детального проектирования, моделирования и проверки.

https://github.com/omarelhedaby/CNN-FPGA/blob/master/Hardware%20Documentation.pdf

Image-Classification-using-CNN-on-FPGA

https://github.com/padhi499/Image-Classification-using-CNN-on-FPGA

Введение

существовать FPGA начальствоиспользовать CNN Выполнить классификацию изображений

Проект о существовании FPGA Создайте обученный нейронный n/w(CIFAR-10 Набор данных), используя концепции глубокого обучения (CNN — сверточная нейронная сеть) на изображениях I/P Классифицировать.

иметь 6 Слои (свертка скользящего окна, ReLU Активация, максимальное объединение, выравнивание, полное подключение и Softmax активация) определяет нашу I/P Категория изображения. Ядра/фильтры, используемые для извлечения изображений из I/P Выполните обнаружение функции. изображение I/P Может быть в оттенках серого/цвета.

Используемые инструменты

  • Vivado v17.4
  • Matlab vR2018.a

DigitalRecognition

https://github.com/suisuisi/FPGAandCNN

Реализация сверточной нейронной сети с фиксированной запятой и цифровым распознаванием на основе FPGA для обработки видео в реальном времени.

posture_recognition_CNN

https://github.com/cxdzyq1110/posture_recognition_CNN

Введение

Распознавание жестов на основе CNN

Важно помочь машинам понять, что мы, люди, делаем с помощью камер. После достижения,Машина может по-разному реагировать на различные позы человека. Но этот процесс также очень труден,Потому что обычно этот процесс не успевает за скоростью и потребляет энергию,Это также требует очень большого объема памяти.

Здесь мы фокусируемся на распознавании жестов в реальном времени и пытаемся дать машине «знать», какие жесты мы делаем. Система распознавания жестов DE10-Nano SoC FPGA Он состоит из комплекта, камеры и монитора HDMI. SoC FPGA Захват видеопотока с камеры через CNN Модель распознает человеческую позу и, наконец, проходит HDMI В интерфейсе отображается исходное видео и результаты классификации (стоя, ходить, махание). и т. д.).

Мы загружаем наши проекты, в том числе Matlab、Python и Quartus。

Версия программного обеспечения:

  • Matlab r2017b
  • Python 3.6.3
  • Anaconda 5.1.0
  • TensorFlow-gpu 1.3.0
  • Quartus 14.0

В то же время существование данного репозитория содержит статьи автора иметь,В документе содержится Детальный дизайн。

NPU_on_FPGA

https://github.com/cxdzyq1110/NPU_on_FPGA

Цель Вычислительный блок NPU реализован на базе FPGA. Умение выполнять матричные операции (ADD / ADDi / ADDs / MULT / MULTi / DOT и др.), операции обработки изображений (CONV / POOL и др.), нелинейное картографирование (RELU / TANH / СИГМ и др.).

  • преимущество Учитывая гибкость,Легко изменить структуру сети,Подходит для реализации небольших CNN/RNNсетей.
  • Дефекты: Из-за последовательного выполнения инструкций и отсутствия Кэша частое чтение и запись внешней памяти приводит к низкой производительности вычислений.

Этот проект также принадлежит тому же автору, что и вышеупомянутый проект Цель.,Детальный дизайн,полный проект,Это стоит сделать.

neural-engine

https://github.com/hollance/neural-engine

самый новый iPhone и iPad Оба имеют Neural Engine — специальный процессор, позволяющий машинному обучение модели становится очень быстрым,А вот как на самом деле работает этот процессор,Публика знает очень мало.

Apple Нейронный двигатель (или ANE) — это тип NPU, что означает блок нейронной обработки. это как графический процессор, но NPU нетускорятьсяграфика,Скорееускорятьсясверткаи Умножение матриц и другие нейронныесетьдействовать。

ANE не единственный НПУ - кроме Apple Кроме того, многие компании разрабатывают собственные AI Вернуться к чипу устройства. Помимо нейронного двигателя, наиболее известная NPU Это из Гугла ТПУ (или Tensor Processing Unit)。

Этот проект не является проектом по внедрению CNN, а касается Apple. Нейронный двигатель (или ANE)представлятьи сопутствующие коллекции документации。

Подвести итог

Сегодня у президента есть N проектов CNN,Предыдущие проекты были относительно «тонкими»,Подходит только для изучения CNNдизайн,Для практики больше подходят проекты начиная с NTHU-ICLAB (включительно).,Поскольку эти проектыиметь Детальный дизайн Документация и платыпроверятьпроцесс。

Объединение предыдущих проектов ТПУ и сегодняшних смежных проектов,Всем больше не стоит бояться нервов,В следующей статье мы возглавим некоторые проекты DNN,Завершите эту серию.

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose