freeze_weights {keras} | R Documentation

## Freeze and unfreeze weights

### Description

Freeze weights in a model or layer so that they are no longer trainable.

### Usage

    freeze_weights(object, from = NULL, to = NULL)

    unfreeze_weights(object, from = NULL, to = NULL)

### Arguments

`object` | Keras model or layer object
`from` | Layer instance, layer name, or layer index within model
`to` | Layer instance, layer name, or layer index within model

### Note

The `from` and `to` layer arguments are both inclusive.

When applied to a model, the freeze or unfreeze is a global operation over all layers in the model (i.e. layers not within the specified range will be set to the opposite value, e.g. unfrozen for a call to freeze).

Models must be compiled again after weights are frozen or unfrozen.

### Examples

    ## Not run:
    # instantiate a VGG16 model
    conv_base <- application_vgg16(
      weights = "imagenet",
      include_top = FALSE,
      input_shape = c(150, 150, 3)
    )

    # freeze it's weights
    freeze_weights(conv_base)

    # create a composite model that includes the base + more layers
    model <- keras_model_sequential() %>%
      conv_base %>%
      layer_flatten() %>%
      layer_dense(units = 256, activation = "relu") %>%
      layer_dense(units = 1, activation = "sigmoid")

    # compile
    model %>% compile(
      loss = "binary_crossentropy",
      optimizer = optimizer_rmsprop(lr = 2e-5),
      metrics = c("accuracy")
    )

    # unfreeze weights from "block5_conv1" on
    unfreeze_weights(conv_base, from = "block5_conv1")

    # compile again since we froze or unfroze weights
    model %>% compile(
      loss = "binary_crossentropy",
      optimizer = optimizer_rmsprop(lr = 2e-5),
      metrics = c("accuracy")
    )

    ## End(Not run)

[Package keras version 2.2.4 Index]