我是深度学习和 Keras 的新手。当用于在 Keras 中定义模型时,预训练权重初始化 weights='imagenet' 是什么意思?
ResNet50(weights='imagenet')
谢谢!
请您参考如下方法:
此代码行创建了一个名为 ResNet50 的网络架构(您可以找到有关它的更多信息 here )。 weights='imagenet' 使 Keras 加载该网络的权重,该网络已在 imagenet 数据集上进行训练。如果没有此信息,Keras 将只能准备网络架构,但无法将任何权重设置为“良好”值,因为它不知道模型的目的。这是通过指定数据集来确定的。
如果您使用的是其他数据集,那么您就是将该模型用作预训练模型。您可以找到有关此技术的更多信息 here ;但总体思路是:在任何复杂(图像)数据集上训练模型后,它将在其最低层(大部分时间:卷积)中学习以检测非常基本的特征,例如边缘、角等. 这有助于模型更快地学习分析您自己的数据集,因为它不必再次学习检测此基本特征。
