Keras加载预训练模型
2023-12-30 20:42:25
Keras库提供了一种方便的方式来加载预训练模型。预训练模型通常是在大型数据集上训练的,如ImageNet,这些模型已经学习到了大量的特征和模式。通过加载预训练模型,我们可以利用这些学到的知识来加速我们的模型训练过程,或者直接使用这些模型来进行预测。
常用的预训练模型
- VGG16:VGG16是一个用于图像分类的卷积神经网络模型,由牛津大学的Visual Geometry Group开发。它使用连续的小滤波器来模拟人类视觉系统中的神经元。该模型在ImageNet数据集上进行了预训练,可以用于图像分类、目标检测和语义分割等任务。
- VGG19:VGG19是VGG16的扩展,添加了更多的层和滤波器。与VGG16类似,VGG19也可以在ImageNet数据集上用于图像分类、目标检测和语义分割等任务。
- ResNet50:ResNet50是一个深度残差网络模型,由微软开发。该模型通过引入残差块来改善了深度神经网络的训练问题。ResNet50在ImageNet数据集上进行了预训练,可以用于图像分类、目标检测和关键点检测等任务。
- InceptionV3:InceptionV3是一个基于GoogleNet的卷积神经网络模型,由Google开发。该模型使用了一种名为“Inception模块”的结构,可以在单一神经网络中实现多种尺度的特征提取。InceptionV3在ImageNet数据集上进行了预训练,可以用于图像分类、目标检测和关键点检测等任务。
- Xception:Xception是一个深度卷积神经网络模型,由纽卡斯尔大学开发。该模型使用了一种名为“分离卷积”的结构,可以提高模型的深度和宽度。Xception在ImageNet数据集上进行了预训练,可以用于图像分类、目标检测和语义分割等任务。
示例1
from keras.applications import VGG16
# 加载预训练的VGG16模型
model = VGG16(weights='imagenet')
# 打印模型的结构
model.summary()
?在这个例子中,首先从keras.applications模块导入了VGG16模型。然后,我们使用weights参数指定了我们要加载的预训练模型。
示例2
from keras.applications import VGG16
from keras import models
from keras import layers
#加载预训练的VGG16模型
#定义基础模型,使用预训练的VGG16模型,输入图像尺寸为150x150,有3个颜色通道
base_model = VGG16(weights='imagenet', include_top=False, input_shape=(150, 150, 3))
#创建一个Sequential模型容器
model = models.Sequential()
#将基础模型添加到顺序模型中
model.add(base_model)
#在基础模型输出后接入一个Flatten层,将多维输入一维化,常用在从卷积层到全连接层的过渡
model.add(layers.Flatten())
#在Flatten层后添加一个全连接层,神经元数量为256,激活函数为ReLU
model.add(layers.Dense(256, activation='relu'))
#在全连接层后添加一个输出层,神经元数量为1,激活函数为Sigmoid,用于二分类问题
model.add(layers.Dense(1, activation='sigmoid'))
#冻结预训练模型的所有层,以便在训练过程中不更新它们的权重
for layer in base_model.layers:
layer.trainable = False # 将基础模型的每一层设置为不可训练,即冻结这些层
#编译模型
#定义模型的损失函数、优化器和评估指标
model.compile(loss='binary_crossentropy', optimizer='rmsprop', metrics=['accuracy'])
文章来源:https://blog.csdn.net/lymake/article/details/135308161
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!