From 5171d6679d75ce8cdfa4911e16a7157e77e85067 Mon Sep 17 00:00:00 2001 From: Alexander Suslov Date: Tue, 20 Feb 2024 20:32:04 +0400 Subject: [PATCH] Added check of parameter type before setting `required_grad=True` for frozen layers (#8318) Co-authored-by: Glenn Jocher --- ultralytics/engine/trainer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ultralytics/engine/trainer.py b/ultralytics/engine/trainer.py index a2fa5aed..33821171 100644 --- a/ultralytics/engine/trainer.py +++ b/ultralytics/engine/trainer.py @@ -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."