神经网络与FPGA调研

根据“AI赋能FPGA”文章引申,及搜索神经网络、FPGA这样的关键词,进行检索,整理成表如下:

序号 一级搜集 二级搜集 引申
1 神经元讲输入信号加权求和后通过激活函数(activation function)进行非线性变换,然后讲结果输出到其他神经元 权重是神经元之间的连接强度,可以调整(在训练中调整) 激活函数是引入非线性因素,是神经网络能够表示复杂的函数关系 输入层接受原始数据,如图像像素值或特征向量 隐藏层负责非线性变换和特征提取; 输出层产生分类标签或回归值 前向传播,是产生预测结果 反向传播,是训练的核心,计算损失函数loss fucntion的梯度来更新神经元之间的连接权重 反向传播算法使用链式法则计算每个权重的梯度,并根据梯度值调整权重,使损失函数逐渐收敛到最小值 减小参数量,在有限的FPGA资源下实现高性能神经网络,采取的策略有模型剪枝、参数共享、模型量化等 在FPGA上部署神经网络 已训练好的神经网络模型:指的是导出权重矩阵和网络结构 OpenCL硬件加速库 (基于OpenCL的FPGA开发。OpenCL Open Computing language,跨平台的编程语言。 Intel的FPGA板卡 是通过OpenCL这样的软件界面,直接写软件,然后生成FPGA代码的任务交给系统) OpenVINO做模型转换。OpenVINO是开源深度学习框架。模型转换是做到统一的IR格式,确保模型运行在不同架构的硬件平台上,方便统一管理和调试。OpenVINO工具套件从2018年诞生 网站docs.openvino.ai
2 动态资源分配,在FPGA上实现神经网络加速器时,可以根据实际需求动态分配资源,当需要处理高分辨率图像时,可以增加并行度以提高处理速度。 模型量化是一种将模型权重和激活值从高精度(32位浮点数)转换为低精度(如8位整数)的方法,降低模型的内存占用和计算量 低比特量化:FPGA可以灵活地实现定制化的低精度算子 循环展开与流水线设计:循环展开是一种优化计算过程的方法,通过将循环结构展开并在硬件中并行执行,可以显著提高计算速度。流水线是硬件增加资源消耗,以提高性能 机器之心公众号 20190601 3天上手,30天精通!——深度学习FPGA加速器设计 高层次综合 用xilinx HLS 实现卷积层的软件,封装成一个顶层函数 改动的代码有:循环重构,数组划分,循环展开 用到的语法pragma, pragma UNROLL参考Xilinx官方文档 《Parallel Programming for FPGAs(中文版)》高层次综合相关知识 北京大学高效能计算与应用中心
3 神经网络现有的成熟模型 ResNet、 MobileNet、EfficientNet 模型剪枝提高在FPGA上的运行效率 ResNet深度残差网络 何凯明在2015年提出的,解决了传统CNN网络发展所遇到的瓶颈——网络深度问题(引入残差块来解决梯度消失问题) 谷歌团队2017年提出MobileNet轻量级神经网络,专注移动端或嵌入式设备(公众号深蓝AI) 公众号深蓝AI 20230613 自动驾驶的里程碑综述|控制、计算系统设计、通信、高精地图、测试全汇总! 这里面有提到FPGA

你可能感兴趣的:(FPGA,神经网络,fpga开发,人工智能)