utils.freeze

utils.freeze

module to freeze/unfreeze parameters by name

Classes

Name Description
LayerNamePattern Represents a regex pattern for layer names, potentially including a parameter index range.

LayerNamePattern

utils.freeze.LayerNamePattern(self, pattern)

Represents a regex pattern for layer names, potentially including a parameter index range.

Methods

Name Description
match Checks if the given layer name matches the regex pattern.
match
utils.freeze.LayerNamePattern.match(name)

Checks if the given layer name matches the regex pattern.

Parameters: - name (str): The layer name to check.

Returns: - bool: True if the layer name matches the pattern, False otherwise.

Functions

Name Description
freeze_layers_except Freezes all layers of the given model except for the layers that match given regex patterns.

freeze_layers_except

utils.freeze.freeze_layers_except(model, regex_patterns)

Freezes all layers of the given model except for the layers that match given regex patterns. Periods in the patterns are treated as literal periods, not as wildcard characters.

Parameters: - model (nn.Module): The PyTorch model to be modified. - regex_patterns (list of str): List of regex patterns to match layer names to keep unfrozen. Note that you cannot use a dot as a wildcard character in the patterns since it is reserved for separating layer names. Also, to match the entire layer name, the pattern should start with “^” and end with “\(", otherwise it will match any part of the layer name. The range pattern part is optional and it is not compiled as a regex pattern which means you must put "\)” before the range pattern if you want to match the entire layer name. E.g., [“^model.embed_tokens.weight\([:32000]", "layers.2[0-9]+.block_sparse_moe.gate.[a-z]+\)”]

Returns: None; the model is modified in place.