Added check of parameter type before setting required_grad=True for frozen layers (#8318)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
This commit is contained in:
Alexander Suslov 2024-02-20 20:32:04 +04:00 committed by GitHub
parent d03928f371
commit 5171d6679d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -252,7 +252,7 @@ class BaseTrainer:
if any(x in k for x in freeze_layer_names):
LOGGER.info(f"Freezing layer '{k}'")
v.requires_grad = False
elif not v.requires_grad:
elif not v.requires_grad and v.dtype.is_floating_point: # only floating point Tensor can require gradients
LOGGER.info(
f"WARNING ⚠️ setting 'requires_grad=True' for frozen layer '{k}'. "
"See ultralytics.engine.trainer for customization of frozen layers."