FINN 编译流程 · 从零到部署
📚 30章实战
v1.0
第 1 章
🚀
FINN概述与课程导论
FINN是什么?为什么需要FINN?课程目标与学习路径。
📌 导学
第 2 章
🧠
深度学习基础回顾
神经网络基础、卷积层、全连接层、激活函数、量化概念。
⚡ 基础
第 3 章
🔧
FPGA基础与开发环境
FPGA架构简介、Vivado开发流程、硬件描述语言基础。
🛠️ 环境
第 4 章
🐳
Docker环境搭建
安装Docker、拉取FINN镜像、验证环境、常见问题排查。
📦 容器
第 5 章
📂
FINN源码获取与编译
从GitHub克隆FINN仓库、目录结构解析、首次编译测试。
📥 源码
第 6 章
🐍
Python虚拟环境与依赖
创建conda环境、安装PyTorch、ONNX、依赖冲突解决。
🧪 环境
第 7 章
📐
ONNX模型基础
ONNX格式介绍、导出PyTorch模型为ONNX、可视化ONNX模型。
📊 模型
第 8 章
⚙️
FINN编译流程概览
端到端编译管线、关键步骤解析、输入输出文件格式。
🔁 流程
第 9 章
📥
模型导入与解析
使用FINN导入ONNX模型、模型图结构分析、节点类型识别。
🔍 解析
第 10 章
🔄
模型变换与优化
图优化、算子融合、常量折叠、冗余消除。
✨ 优化
第 11 章
📏
量化与精度分析
量化感知训练、后训练量化、精度评估、校准数据集。
🔢 量化
第 12 章
🌊
数据流编译
数据流架构生成、层映射、流水线深度配置。
📈 架构
第 13 章
💻
HLS代码生成
高层次综合概念、C++代码生成、HLS指令优化。
⚡ HLS
第 14 章
🧩
IP核封装与集成
将HLS模块封装为Vivado IP、AXI接口配置、时钟与复位。
📦 IP
第 15 章
🏗️
Vivado工程生成
自动生成Vivado工程、Block Design搭建、比特流生成。
🔨 工程
第 16 章
🚀
部署与运行时
Pynq框架介绍、驱动生成、板级验证。
📟 部署
第 17 章
🧪
自定义网络实战(一)
LeNet-5模型设计、训练与导出ONNX。
🧬 LeNet
第 18 章
🛠️
自定义网络实战(二)
使用FINN编译LeNet-5、调试编译错误。
🐞 调试
第 19 章
📡
自定义网络实战(三)
在Pynq-Z2上部署LeNet-5、实时推理测试。
📲 部署
第 20 章
⚡
性能优化技巧
吞吐量优化、延迟优化、资源利用率平衡、多核并行。
📊 优化
第 21 章
🔎
调试与错误排查
常见编译错误、仿真调试、波形分析、日志解读。
🧰 排错
第 22 章
🔗
高级主题:异构计算
FINN与Vitis AI对比、混合精度部署、多FPGA协同。
🧩 异构
第 23 章
🧩
高级主题:自定义算子
编写自定义HLS算子、注册到FINN、集成到编译流程。
⚙️ 算子
第 24 章
✂️
模型剪枝与压缩
结构化剪枝、权重共享、FINN中的稀疏性支持。
🌿 剪枝
第 25 章
🖼️
实战项目一:图像分类
数据集准备、模型训练、FINN编译、部署演示。
📸 分类
第 26 章
🎯
实战项目二:目标检测
YOLO简化版、编译适配、性能调优。
📦 检测
第 27 章
🎤
实战项目三:语音关键词
TinyML模型、低延迟部署、功耗测量。
🔊 语音
第 28 章
🔄
CI/CD与自动化测试
自动化编译脚本、回归测试、版本管理、持续集成。
🤖 CI
第 29 章
🌐
社区与生态
FINN社区资源、论文阅读、贡献指南、常见问题FAQ。
🌍 社区
第 30 章
🎓
课程总结与未来展望
学习路线图、进阶方向、行业趋势、结业项目建议。
🏁 结业