Skip to content

Commit c58d5d1

Browse files
authored
Fix bug on detection backbones when trainable_layers == 0 (#3906)
* Fix a bug when trainable_layers == 0 * Fix same issue on ssd.
1 parent 21824ce commit c58d5d1

File tree

3 files changed

+3
-3
lines changed

3 files changed

+3
-3
lines changed

torchvision/models/detection/backbone_utils.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ def mobilenet_backbone(
151151

152152
# find the index of the layer from which we wont freeze
153153
assert 0 <= trainable_layers <= num_stages
154-
freeze_before = num_stages if trainable_layers == 0 else stage_indices[num_stages - trainable_layers]
154+
freeze_before = len(backbone) if trainable_layers == 0 else stage_indices[num_stages - trainable_layers]
155155

156156
for b in backbone[:freeze_before]:
157157
for parameter in b.parameters():

torchvision/models/detection/ssd.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -510,7 +510,7 @@ def _vgg_extractor(backbone_name: str, highres: bool, progress: bool, pretrained
510510

511511
# find the index of the layer from which we wont freeze
512512
assert 0 <= trainable_layers <= num_stages
513-
freeze_before = num_stages if trainable_layers == 0 else stage_indices[num_stages - trainable_layers]
513+
freeze_before = len(backbone) if trainable_layers == 0 else stage_indices[num_stages - trainable_layers]
514514

515515
for b in backbone[:freeze_before]:
516516
for parameter in b.parameters():

torchvision/models/detection/ssdlite.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ def _mobilenet_extractor(backbone_name: str, progress: bool, pretrained: bool, t
147147

148148
# find the index of the layer from which we wont freeze
149149
assert 0 <= trainable_layers <= num_stages
150-
freeze_before = num_stages if trainable_layers == 0 else stage_indices[num_stages - trainable_layers]
150+
freeze_before = len(backbone) if trainable_layers == 0 else stage_indices[num_stages - trainable_layers]
151151

152152
for b in backbone[:freeze_before]:
153153
for parameter in b.parameters():

0 commit comments

Comments
 (0)