add freeze, unfreeze methods with experimental tag#15729
Conversation
Signed-off-by: nithinraok <nithinrao.koluguri@gmail.com>
|
/ok to test 1fc31e0 |
|
/claude review |
Signed-off-by: nithinraok <nithinrao.koluguri@gmail.com>
| x = x.transpose(1, 2) # (B, T, D) -> (B, D, T) | ||
| return x, length | ||
|
|
||
| def freeze(self): |
There was a problem hiding this comment.
nitpick but maybe this should be either a mixin, or a standalone module ModelFreezer or free function freeze(module) / unfreeze(module, partial)? the logic seems quite generic, not sure if it should be included in class definition. this class could just do
def freeze(self):
return freeze(self)
def unfreeze(self, partial):
return unfreeze(self, partial=partial)
There was a problem hiding this comment.
Yeah actually, It is part of NeuralModule but since we not inheriting I added these methods separately for now.
There was a problem hiding this comment.
Maybe let's pull out the implementation from NeuralModule into free functions and import them both here and in NeuralModule? Call it "preparatory refactoring" :)
There was a problem hiding this comment.
Great suggestion. Applied the changes.
|
/ok to test e1f0bc4 |
|
[🤖]: Hi @nithinraok 👋, We wanted to let you know that a CICD pipeline for this PR just finished successfully. So it might be time to merge this PR or get some approvals. |
Signed-off-by: nithinraok <nithinrao.koluguri@gmail.com>
Signed-off-by: nithinraok <nithinrao.koluguri@gmail.com>
|
/ok to test a6db262 |
|
[🤖]: Hi @nithinraok 👋, We wanted to let you know that a CICD pipeline for this PR just finished successfully. So it might be time to merge this PR or get some approvals. |
stevehuang52
left a comment
There was a problem hiding this comment.
Looks good on my end, thanks!
What does this PR do ?
Add
freeze()/unfreeze()methods to the ASR TransformerEncoder and mark the class as experimental.Collection: ASR
Changelog
freeze()method toTransformerEncoder: setsrequires_grad=Falseon all parameters and switches the module to eval mode.unfreeze(partial: bool = False)method toTransformerEncoder: sets requires_grad=Trueon all parameters; switches to train mode unless partial=True.TransformerEncoderwith@experimentalfromnemo.utils.decoratorsto signal API stability is not yet guaranteed.GitHub Actions CI
The Jenkins CI system has been replaced by GitHub Actions self-hosted runners.
The GitHub Actions CI will run automatically when the "Run CICD" label is added to the PR.
To re-run CI remove and add the label again.
To run CI on an untrusted fork, a NeMo user with write access must first click "Approve and run".
Before your PR is "Ready for review"
Pre checks:
PR Type:
If you haven't finished some of the above items you can still open "Draft" PR.
Who can review?
Anyone in the community is free to review the PR once the checks have passed.
Contributor guidelines contains specific people who can review PRs to various areas.
Additional Information