towhee.trainer.utils.layer_freezer.LayerFreezer¶
- class towhee.trainer.utils.layer_freezer.LayerFreezer(model)[source]¶
Bases:
object
Utilities to freeze/unfreeze layers.
- Parameters:
model – a model with weights.
- Returns:
LayerFreezer.
Example
>>> from towhee.trainer.utils.layer_freezer import LayerFreezer >>> from towhee.models import vit >>> my_model = vit.create_model() >>> my_freezer = LayerFreezer(my_model) >>> # Check if modules in the last layer are frozen >>> my_freezer.status(-1) >>> # Check if modules in the layer "head" are frozen >>> my_freezer.status("head") ['unfrozen', 'unfrozen'] >>> # Show all frozen layers >>> my_freezer.show_frozen_layers() ['patch_embed', 'head'] >>> # Freeze layers by a list of layer indexes >>> my_freezer.by_idx([0, -1]) >>> # Freeze layers by a list of layer names >>> my_freezer.by_names(['head']) >>> # Freeze all layers >>> my_freezer.set_all() >>> # Unfreeze all layers >>> my_freezer.set_all(freeze=False) >>> # Freeze all except the last layer >>> my_freezer.set_slice(-1)
Methods
Freeze/unfreeze layers by indexes
Freeze/unfreeze layers by names
Freeze/unfreeze all layers.
Freeze/unfreeze layers by list slice.
Show all names of frozen layers
Check if a layer is frozen or not by its name or index
- by_idx(idx: list, freeze: bool = True)[source]¶
Freeze/unfreeze layers by indexes
- Parameters:
idx (list) – a list of layer indexes
freeze (bool) – if or not freeze layers (default: True)
- by_names(names: list, freeze: bool = True)[source]¶
Freeze/unfreeze layers by names
- Parameters:
names (list) – a list of layer names
freeze (bool) – if or not freeze layers (default: True)
- set_all(freeze: bool = True)[source]¶
Freeze/unfreeze all layers.
- Parameters:
freeze (bool) – if or not freeze layers (default: True)
- set_slice(slice_num: int, freeze: bool = True)[source]¶
Freeze/unfreeze layers by list slice.
- Parameters:
slice_num (int) – number to slice the list of layers
freeze (bool) – if or not freeze layers (default: True)