目录
[1.1. 输入端:数据输入层 (Input Layer)](#1.1. 输入端:数据输入层 (Input Layer))
[1.2. 中间层:核心特征提取层](#1.2. 中间层:核心特征提取层)
[1.3. 输出端:全连接层 (FC Layer)](#1.3. 输出端:全连接层 (FC Layer))
[2.2.2 读取数据](#2.2.2 读取数据)
[2.3.1 训练模型](#2.3.1 训练模型)
[2.3.2 测试模型](#2.3.2 测试模型)
这篇笔记的是在想在FPGA中部署CNN的学习过程中做的笔记,主要是记录在学习B站"从零设计并训练一个神经网络,你就能真正理解它了_哔哩哔哩_bilibili"课程时做的一些笔记,只是大概了解CNN如何搭建的全流程,但是对CNN的内部结构还是不了解。
1.典型层级结构
CNN的典型层级结构如下图所示。图来源于参考资料1。

图中卷积神经网络(CNN) 的典型层级结构分为三个主要部分,分别是输入层、中间层、输出层。每一层的功能如下:
1.1. 输入端:数据输入层 (Input Layer)
这是架构的最左侧,主要负责对原始数据进行预处理,以提升训练效果和模型的稳定性。常见的处理手段包括:
-
去均值 (Mean Subtraction): 将数据各维度中心化为 0,防止数据偏差影响训练。
-
归一化 (Normalization): 将所有数据缩放到统一的范围。
-
其他: 如 PCA(主成分分析)和白化(Whitening)等。
1.2. 中间层:核心特征提取层
这是 CNN 的主体部分,通常由以下三种层反复堆叠而成:
-
CONV (卷积计算层): 负责特征提取,通过线性乘积并求和的方式捕捉局部特征。这是 CNN 的核心。
-
RELU (激活层): 采用 ReLU 等激活函数,为模型引入非线性,使其能处理复杂的特征。
-
POOL (池化层): 进行下采样(取区域平均值或最大值),目的是减小数据维度,减少计算量并防止过拟合。
1.3. 输出端:全连接层 (FC Layer)
位于架构的最右边:
- FC (Fully Connected Layer): 负责将前面提取到的各种特征进行汇总,最终用于分类或回归任务。
2.实例
此例子来自参考资料2。


2.1.神经网络的设计和实现








2.2.训练数据的准备和处理
2.2.1获取数据



2.2.2 读取数据



2.3.模型的训练和测试流程
2.3.1 训练模型



2.3.2 测试模型


参考资料
- CNN笔记:通俗理解卷积神经网络_cnn卷积神经网络-CSDN博客:介绍了cnn的基础知识,主要是如何识别出物体的类别,卷积是怎么运算的。
2.从零设计并训练一个神经网络,你就能真正理解它了_哔哩哔哩_bilibili:以手写数字为例子,介绍了前馈