我正在使用 Mask-RCNN。我首先选择了 resnet50 主干,然后下载了 COCO 预训练的权重。
为什么迁移学习需要预先训练的权重?
迁移学习方法是训练一个基础网络,然后复制它的第一层目标。我的基础网络是 resnet50,我将第一层复制到 Mask RCNN。那么,为什么我需要预训练的权重,例如 coco 预训练的权重?
我知道我从 resnet 复制图层和预先训练的权重。
提前致谢。
我正在使用 Mask-RCNN。我首先选择了 resnet50 主干,然后下载了 COCO 预训练的权重。
为什么迁移学习需要预先训练的权重?
迁移学习方法是训练一个基础网络,然后复制它的第一层目标。我的基础网络是 resnet50,我将第一层复制到 Mask RCNN。那么,为什么我需要预训练的权重,例如 coco 预训练的权重?
我知道我从 resnet 复制图层和预先训练的权重。
提前致谢。
当您调用预训练模型(在您的情况下为 resnet50)来执行迁移学习时,实际上只调用了模型的架构。除非经过培训,否则这种架构实际上无法对数据执行任何类型的计算操作并预测任何输出。为此,您将需要权重(模型在某些先前数据集上理解的变量)。
权重更像是数学系数,它接受输入并对输入执行计算以生成所需的输出。它们更像是线性代数问题中的系数。这就是为什么需要为模型调用权重的实际原因。
即使您没有在模型中调用任何权重,您也可以使您的模型可训练并对其进行训练以生成适合您数据的自己的权重,而不是微调您的模型。在此处阅读有关相同内容的更多信息
您需要预先训练的权重才能成为迁移学习。
复制层结构不是迁移学习,它只是构建一个受他人启发/复制的网络。
迁移学习包括使用预先训练的层来构建一个不同的网络,该网络在第一层中可能具有相似性。这通常对深度学习很有用。
所以使用迁移学习的原因是:
您想分析用于训练另一个网络的数据集中的不同内容
您想在用于训练某个网络但之前未注释的类中执行分类
您想针对与另一个类似的问题训练网络,并且没有时间或计算能力来重新训练所有层