我经常找到使用预训练模型的项目,并将它们作为新模型的起点,从他们的数据集或实时学习过程中学习一些新颖的东西——例如使用网络摄像头或实时音频。
这是否很常见并建议加快模型的训练速度?例如,使用在 ImageNet 上训练的模型作为模型的第一层,该模型将专门对人脸进行分类。
我经常找到使用预训练模型的项目,并将它们作为新模型的起点,从他们的数据集或实时学习过程中学习一些新颖的东西——例如使用网络摄像头或实时音频。
这是否很常见并建议加快模型的训练速度?例如,使用在 ImageNet 上训练的模型作为模型的第一层,该模型将专门对人脸进行分类。
是的,如果您没有高端硬件,建议从预训练模型开始。您可以使用预训练模型进行微调(将它们训练的权重作为您的初始权重)或将其用作特征提取器(删除最后几层,然后对其进行训练)。
为什么我们需要一个预训练的网络?
因为训练一个好的深度模型需要很多时间并且需要很多硬件。一些好的模型,比如 DenseNet、ResNet,甚至 VGG16 都需要几天的训练。您可以阅读VGG 原始论文:
在配备四个 NVIDIA Titan Black GPU 的系统上,训练单个网络需要 2-3 周,具体取决于架构。
有时我们的案例类似于现有的预训练模型数据集。例如,如果我们需要对一些花卉类型的图像进行分类,即使我们的案例有不同的类别,我们可以使用一些预训练模型的第一个卷积层并将其用作特征提取器。