1.训练是干什么?
以yolov5为例子,训练的目的是把一组输入猫狗图像放到神经网络中,得到一个输出模型,这个模型下次可以直接用来识别哪个是猫,哪个是狗
2.预训练模型进行训练,主要更改的是预训练模型的什么东西?
- 超参数(Hyperparameters):
这是模型结构中定义的参数,比如:
卷积核大小(kernel_size):影响特征提取的精细程度。
步长(stride):决定卷积操作在输入特征图上的移动幅度,影响输出的特征图大小。
激活函数(如SiLU):影响非线性变换的方式。
层数、通道数(如卷积核数量、隐藏层数量):影响模型的复杂度。
调整这些超参数不涉及对模型本身权重的学习,而是你手动设计模型结构的过程。你可以手动设置这些参数,优化模型的表现。
- 模型参数(Trainable Parameters):
这是模型在训练过程中通过数据自动学习的参数,主要是卷积层的权重和偏置。比如卷积核内部的权重(Conv2d中的weights和bias)会随着训练数据的输入和误差的反馈不断更新。
这些参数是在反向传播过程中由优化器(如Adam、SGD等)自动调整的,目的是使模型更好地拟合训练数据。(这里的weights和bias是隐含的,不会出现在打印出的网络结构中
)