Keras中如何使用预训练模型

1949idc 2年前 (2024-09-18) 阅读数 501 #深度学习

Keras中可以使用预训练模型来进行迁移学习或者微调。以下是使用预训练模型的一般步骤:

  1. 导入所需的预训练模型,比如VGG16、ResNet50、InceptionV3等。这些模型可以在Keras的applications模块中找到。
from keras.applications import VGG16
  1. 实例化预训练模型,并指定是否包含顶层分类器。通常情况下,我们会去掉顶层分类器,因为我们要根据自己的数据集重新训练一个新的分类器。
base_model = VGG16(weights='imagenet', include_top=False)
  1. 在实例化的模型上添加新的分类器层。这个新的分类器层将会根据你的数据集进行训练。
x = base_model.output
x = GlobalAveragePooling2D()(x)
x = Dense(1024, activation='relu')(x)
predictions = Dense(num_classes, activation='softmax')(x)

model = Model(inputs=base_model.input, outputs=predictions)
  1. 冻结预训练模型的权重。通常情况下,我们会先冻结预训练模型的权重,只训练新添加的分类器层。
for layer in base_model.layers:
    layer.trainable = False
  1. 编译模型并进行训练。
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
model.fit(X_train, y_train, epochs=10, batch_size=32, validation_data=(X_val, y_val))
  1. 如果需要微调模型,可以解冻部分或全部预训练模型的层,并重新编译模型。
for layer in base_model.layers[:100]:
    layer.trainable = True

model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
model.fit(X_train, y_train, epochs=10, batch_size=32, validation_data=(X_val, y_val))

通过以上步骤,你就可以使用预训练模型来进行迁移学习或者微调。

版权声明

本文内容由互联网用户自发贡献,该文观点仅代表作者本人
本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

© 2010 首途云安 & 厦门硕顿信息技术有限公司 & 闽ICP备11016866号  增值电信业务经营许可证:B1-20203020 地址:福建厦门思明区嘉禾路297号1806
高新技术企业
软件产品证书
计算机软件著作权
ISO认证
国家3A企业