直接用mnist训练VGG16,得到的准确率只有0.11左右,所以我用keras内置的用imagenet训练的VGG16进行微调,训练mnist,准确率达到0.94,得到了很大的提升。
from keras.applications import VGG16
from keras.datasets import mnist
from keras.utils import to_categorical
from keras import models
from keras.layers.core import Dense,Flatten,Dropout
import cv2
import numpy as np
#加载数据
(x_train,y_train),(x_test,y_test)=mnist.load_data()
#VGG16模型,权重由ImageNet训练而来,模型的默认输入尺寸是224x224,但是最小是48x48
#修改数据集的尺寸、将灰度图像转换为rgb图像
x_train=[cv2.cvtColor(cv2.resize(i,(48,48)),cv2.COLOR_GRAY2BGR)for i in x_train]
x_test=[cv2.cvtColor(cv2.resize