我想训练一个神经网络来检测单个类,但我会扩展它来检测更多类。为了解决这个任务,我选择了 PyTorch 框架。
我遇到了迁移学习,我们用新数据微调预训练的神经网络。有一个很好的 PyTorch 教程来解释迁移学习。我们也有Single Shot Detector (SSD) 的 PyTorch 实现。另请参阅使用 Pytorch 的 Single Shot MultiBox Detector — 第 1 部分。
这是我现在的情况
我想用来微调神经网络的数据与最初用于训练神经网络的数据不同;更具体地说,神经网络最初是用 20 个类别的数据集训练的
我目前有一个非常小的标记训练数据集。
要使用迁移学习解决这个问题,解决方案是冻结初始层的权重,然后在冻结这些层的情况下训练神经网络。
但是,我对初始层是什么以及如何更改神经网络的最后一层来解决我的特定任务感到困惑。所以,这是我的问题。
在这种情况下,初始层是什么?我该如何冷冻它们?
在训练 NN 对一个或多个新类进行分类时,我需要做哪些更改?