Keras 应用程序提供了一些最流行的模型架构的实现,其权重在一些最流行的数据集上进行了预训练。这些预定义的模型对于迁移学习类似于模型训练的数据集的问题非常方便。
但是,如果我有一个非常不同的问题并想在新数据集上完全训练模型怎么办?如果我没有预训练的权重,如何使用 Applications 中的模型基于我自己的数据集从头开始训练?
Keras 应用程序提供了一些最流行的模型架构的实现,其权重在一些最流行的数据集上进行了预训练。这些预定义的模型对于迁移学习类似于模型训练的数据集的问题非常方便。
但是,如果我有一个非常不同的问题并想在新数据集上完全训练模型怎么办?如果我没有预训练的权重,如何使用 Applications 中的模型基于我自己的数据集从头开始训练?
您可以将 None 分配给 weights 变量,例如使用 inception V3 架构。
keras.applications.inception_v3.InceptionV3(include_top=False, weights='None', input_shape=input_shape = (img_width, img_height, 3))
include_top=False
将允许您使用自定义网络训练顶层。
weights='None'
意味着如果您想使用 imagenet 权重进行训练,我们将在没有任何权重的情况下进行训练,您将其设置为weights='imagenet'