模型介绍参看:博文
VGG16
迁移模型
先看看标准答案
import tensorflow as tf
from tensorflow import keras
base_model = keras.applications.VGG16(weights='imagenet')
base_model.summary()
自建模型
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers, models, Input
from tensorflow.keras.models import Model
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Dense, Flatten, Dropout
def VGG16(nb_classes, input_shape):
input_tensor = Input(shape=input_shape)
# 1st block
x = Conv2D(64, (3,3), activation='relu', padding='same',name='conv1a')(input_tensor)
x = Conv2D(64, (3,3), activation='relu', padding='same',name='conv1b')(x)
x = MaxPooling2D((2,2), strides=(2,2), name = 'pool1')(x)
# 2nd block
x = Conv2D(128, (3,3), activation='relu', padding='same',name='conv2a')(x)
x = Conv2D(128, (3,3), activation='relu', padding='same',name='conv2b')(x)
x = MaxPooling2D((2,2), strides=(2,2), name = 'pool2')(x)
# 3rd block
x = Conv2D(256, (3,3), activation='relu', padding='same',name='conv3a')(x)
x = Conv2D(256,