如果我们查看 Keras 中的可用模型列表,如图所示 here我们看到几乎所有这些都是用 weights='imagenet'
实例化的。例如:
model = VGG16(weights='imagenet', include_top=False)
为什么总是 imagenet
?是因为它是基线吗?如果没有,还有哪些其他可用选项?
谢谢
最佳答案
Imagenet 是图像分类的事实标准。每年举办一次比赛,使用 1000 个类别的数百万张训练图像。 imagenet 分类竞赛中使用的模型是相互比较性能的。因此,它为模型对图像分类的好坏提供了一个“标准”度量。所以很多经常使用的迁移学习模型模型都使用了imagenet权重。如果您正在使用迁移学习,则可以通过向模型添加额外的层来为您的应用程序定制您的模型。您不必使用 imagenet 权重,但它通常是有益的,因为它有助于模型在更少的 epoch 中收敛。我使用它们,但我还将所有层设置为可训练的,这有助于使模型的权重适应您的应用程序。
关于tensorflow - 为什么 Keras 模型仅使用 imagenet 权重进行实例化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62739893/