zhanghang1989 / PyTorch-Encoding

A CV toolkit for my papers.
https://hangzhang.org/PyTorch-Encoding/
MIT License
2.04k stars 450 forks source link

How to freeze and unfreeze some parts of DataParallelModel ? #390

Closed June-Jo closed 3 years ago

June-Jo commented 3 years ago

Hello.

I want to freeze or unfreeze parts of my model after DataParallelModel. But it seems like that DataParallelModel does not support indexing and I cannot access to the model. How can I freeze or unfreeze my model after DataParallelModel ?

I'm trying to freeze some part using below function.

  def decoder_freeze(self, freeze=False):
      modules = [self.decoder]
      for i in range(len(modules)):
          for m in modules[i].named_modules():
              for p in m[1].parameters():
                  p.requires_grad = freeze

self.decoder is a part of my model that I want to freeze or unfreeze.

Thanks for your help in advance.