上次博主研究vgg16是直接调用已经训练好的vgg模型,没有自己进行搭建网络,这次博主先是用了tensorflow搭建,后来又用了keras搭建,发现keras对新手太友好了。首先附上vgg16的构建代码。想看实战项目的可以在博主的第二篇博文查看vgg16实战。
vgg16先卷积2次,池化,卷积2次,池化,卷积3次,池化,卷积3次,池化,然后全连接层。
看看大概结构其实很容易发现规律,似乎有些代码都是重复的,然后有些只是改个数字而已。具体怎么写,下面进行详细介绍。小伙伴们要特别注意代码中一些数字和上图结构中数字的关系噢,特别是64,128,256,512,4096,1000.很有规律的。仔细观察你就会了。
from keras.models import Sequential
from keras.layers.core import Flatten, Dense
from keras.layers.convolutional import Conv2D, MaxPooling2D
model = Sequential()
model.add(Conv2D(64, (3, 3), padding = 'same', activation='relu', input_shape=(224, 224, 3)))
model.add(Conv2D(64, (3, 3), padding = 'same', activation='relu'))
model.add(MaxPooling2D((2, 2), strides=(2, 2)))
model.add(Conv2D(128, (3,