VGG16 and VGG19 models for Keras.

application_vgg16(
  include_top = TRUE,
  weights = "imagenet",
  input_tensor = NULL,
  input_shape = NULL,
  pooling = NULL,
  classes = 1000
)

application_vgg19(
  include_top = TRUE,
  weights = "imagenet",
  input_tensor = NULL,
  input_shape = NULL,
  pooling = NULL,
  classes = 1000
)

Arguments

include_top

whether to include the 3 fully-connected layers at the top of the network.

weights

NULL (random initialization), imagenet (ImageNet weights), or the path to the weights file to be loaded.

input_tensor

optional Keras tensor to use as image input for the model.

input_shape

optional shape list, only to be specified if include_top is FALSE (otherwise the input shape has to be (224, 224, 3) It should have exactly 3 inputs channels, and width and height should be no smaller than 32. E.g. (200, 200, 3) would be one valid value.

pooling

Optional pooling mode for feature extraction when include_top is FALSE.

  • NULL means that the output of the model will be the 4D tensor output of the last convolutional layer.

  • avg means that global average pooling will be applied to the output of the last convolutional layer, and thus the output of the model will be a 2D tensor.

  • max means that global max pooling will be applied.

classes

optional number of classes to classify images into, only to be specified if include_top is TRUE, and if no weights argument is specified.

Value

Keras model instance.

Details

Optionally loads weights pre-trained on ImageNet.

The imagenet_preprocess_input() function should be used for image preprocessing.

Reference

- Very Deep Convolutional Networks for Large-Scale Image Recognition

Examples

if (FALSE) { library(keras) model <- application_vgg16(weights = 'imagenet', include_top = FALSE) img_path <- "elephant.jpg" img <- image_load(img_path, target_size = c(224,224)) x <- image_to_array(img) x <- array_reshape(x, c(1, dim(x))) x <- imagenet_preprocess_input(x) features <- model %>% predict(x) }