利用VGG16网络进行字体识别
接下来使用迁移学习的思想,以VGG16作为模板搭建模型,训练识别手写字体。
VGG16模型是基于K.Simonyan和A.Zisserman写的Very Deep Convolutional Networks for Large-Scale Image Recognition,arXiv:1409.1556。
1、导入数据
from keras.applications.vgg16 import VGG16 # VGG16模型
from keras.layers import Input, Flatten, Dense, Dropout # 搭建卷积神经网络需要的模块,分别为全展开方法,输出层方法,随机失活方法
from keras.models import Model 加载模型类
from keras.optimizers import SGD # 加载SGD优化函数
from keras.datasets import mnist # 加载数据集
import cv2 # 加载opencv,用于后期对图像的处理,比如尺寸变换和Channel变换。这些变换是为了使图像满足VGG16所需要的输入格式。
import h5py as h5py # 数据储存和导出类
import numpy as np # 必要的东西!
2、创建迁移网络
1、创建不包含权重的VGG_16迁移网络
model_vgg = VGG16(include_top=False, weights='imagenet', input_shape=(224, 224, 3))
model = Flatten(name = 'flatten')(model_vgg.output)
model = Dense(10, activation = "softmax")(model)
model_vgg_mn