Keras之VGG16识别mnist数据集(迁移VGG16)

该博客介绍了如何使用Keras中的VGG16模型进行迁移学习,识别MNIST数据集。首先,导入必要的库,然后加载VGG16模型并移除顶层。接着,创建新的模型结构,将VGG16的输出通过Flatten和Dense层连接,并冻结VGG16的层以防止训练时更新。最后,调整数据集以适应VGG16的输入规格,对模型进行编译和训练。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

from  keras.applications.vgg16 import VGG16  #引入vgg16

from   keras.layers   import Conv2D,MaxPooling2D,Flatten,Dropout,Dense

from  keras.models import   Model

from keras.optimizers import  SGD #引入SGD优化器


from   keras.datasets   import    mnist

import  cv2

import h5py as h5py
import numpy as  np


model_vgg = VGG16(include_top = False,input_shape=(112,112,3),weights = 'imagenet')
#接下来新建一个模型,其类型是Keras的Model类对象。我们构建的模型会将VGG16顶层去掉,只保留其余的网络结构。
#这里用include_top=False表明我们迁移除顶层以外的其余网络结构到自己的模型中。

model = Flatten(name = 'flatten')(model_vgg.output)

model = Dense(10,activation='softmax')(model)

model_vgg_mnist = Model(model_vgg.input,model,name = 'vgg16')

print(model_vgg_mnist.summary())
print("------------------------")


ishape = 112

model_vgg = VGG16(include_top = False,weights = 'imagenet',input_shape = (ishape,ishape,3))

for layer in model_vgg.layers:
    layer.trainable = False     #把不需要重新训练的权重“冷冻”起来。这里使用trainable=false这个选项


model  = Flatten()(model_vgg.output)

model = Dens
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值