Sure, you definitely can. You've got a couple of options:
pooling kwarg
Use the pooling
kwarg in the VGG16 constructor, which replaces the last pooling layer with the specified type. i.e.
model_base = keras.applications.vgg16.VGG16(include_top=False, input_shape=(*IMG_SIZE, 3), weights='imagenet', pooling="avg")
Adding layers to the output
You can also add more layers to the pretrained model:
from keras.models import Model
model_base = keras.applications.vgg16.VGG16(include_top=False, input_shape=(*IMG_SIZE, 3), weights='imagenet')
output = model_base.output
output = GlobalAveragePooling2D()(output)
# Add any other layers you want to `output` here...
model = Model(model_base.input, output)
for layer in model_base.layers:
layer.trainable = False
That last line freezes the pretrained layers so that you preserve the features of the pretrained model and just train the new layers.
I wrote a blog post that goes through the basics of working with pretrained models and extending them to work on various image classification problems; it's also got a link to some working code examples that might provide more context: http://innolitics.com/10x/pretrained-models-with-keras/