Spatial-BEATs / check_freeze.py
dieKarotte's picture
Add files using upload-large-folder tool
29615e9 verified
Raw
History Blame Contribute Delete
1.68 kB
import sys
sys.path.insert(0, '.')
from train_spatial_beats import (
make_ov1_local_spatial_v3b_classwarmup_config,
configure_stage1_trainable_parameters,
)
from spatial_beats import SpatialBEATs
cfg = make_ov1_local_spatial_v3b_classwarmup_config()
print("=== Config ===")
print(f" freeze_trunk_in_stage1: {cfg.freeze_trunk_in_stage1}")
print(f" unfreeze_top_n_layers: {cfg.unfreeze_top_n_layers}")
print(f" unfreeze_full_trunk: {cfg.unfreeze_full_trunk}")
print(f" freeze_local_spatial_in_classwarmup: {cfg.freeze_local_spatial_in_classwarmup}")
print(f" ddp_find_unused_parameters: {cfg.ddp_find_unused_parameters}")
print(f" loss.lambda_direction: {cfg.loss.lambda_direction}")
print(f" loss.lambda_dist: {cfg.loss.lambda_dist}")
print(f" loss.lambda_cls_aux: {cfg.loss.lambda_cls_aux}")
print(f" readout_scheme: {cfg.model.readout_scheme}")
print(f" class_finetuned_ckpt: {cfg.class_finetuned_ckpt}")
print(f" supervision_mode: {cfg.loss.supervision_mode}")
model = SpatialBEATs(cfg.model)
configure_stage1_trainable_parameters(model, cfg)
# Count
trainable = []
frozen = []
for name, param in model.named_parameters():
if param.requires_grad:
trainable.append(name)
else:
frozen.append(name)
print(f"\n=== Trainable ({len(trainable)}) ===")
for n in trainable:
print(f" ✅ {n}")
print(f"\n=== Frozen ({len(frozen)}) ===")
for n in frozen:
print(f" ❄️ {n}")
# Summary
trainable_params = sum(p.numel() for p in model.parameters() if p.requires_grad)
total_params = sum(p.numel() for p in model.parameters())
print(f"\nTrainable: {trainable_params:,} / {total_params:,} = {trainable_params/total_params:.1%}")