为什么 Keras 模型仅使用 imagenet 权重进行实例化?

Dav*_*vid 2 deep-learning conv-neural-network keras tensorflow pre-trained-model

如果我们查看 Keras 中的可用模型列表(如此处所示),我们会发现几乎所有模型都是用 实例化的weights='imagenet'。例如:

model = VGG16(weights='imagenet', include_top=False)
Run Code Online (Sandbox Code Playgroud)

为什么总是imagenet?是因为它是基线吗?如果没有,还有哪些其他选择?

谢谢

Ger*_*y P 7

Imagenet 是图像分类事实上的标准。每年都会举办一次竞赛,涉及 1000 个类别的数百万张训练图像。Imagenet 分类竞赛中使用的模型会相互比较其性能。因此,它提供了衡量模型在图像分类方面的性能的“标准”衡量标准。所以很多常用的迁移学习模型都使用了imagenet权重。如果您使用迁移学习,则可以通过向模型添加附加层来针对您的应用程序自定义模型。您不必使用 imagenet 权重,但它通常是有益的,因为它有助于模型在更少的时期内收敛。我使用它们,但我还将所有层设置为可训练的,这有助于使模型的权重适应您的应用程序。