VGG16的keras实现
前言
keras的实现还是跟常规tf的实现有点区别。本文只涉及到网络的测试部分,不含训练过程,使用的参数是训练好的vgg16_weights_tf_dim_ordering_tf_kernels.h5文件,使用的标签对应文件是class.txt。
代码(环境:windows-keras)
from keras.models import Sequential
from keras.layers.core import Dense, Dropout, Flatten
from keras.layers.convolutional import Convolution2D, MaxPooling2D
import cv2
import numpy as np
class vgg16():
def __init__(self):
self.model = Sequential()
self.mean = [103.93, 116.79, 123.68]
def load_img(self, imgurl):
self.img = cv2.imread(imgurl)
im = cv2.resize(self.img,(224, 224)).astype(np.float32)
im[:,:,0] -= self.mean[0] #RGB三通道图像,对每一个通道减去这个通道的均值,目的是加快网络收敛。
im[:, :, 1] -= self.mean[1]
im[:, :, 2] -= self.mean[