티스토리 뷰
모델의 특정 layer를 freeze시키면,
학습 과정에서 Back Propagation이 일어날 때 freeze된 layer의 파라미터들은 weight가 업데이트되지 않고 유지된다.
freeze시키는 방법은 간단하다. 해당 layer의 파라미터들에 대해 requires_grad = False로 설정해주면 된다.
from transformers import AutoModel
def freeze_params(model):
for par in model.parameters():
par.requires_grad = False
def show_requires_grad(model):
for name, param in model.named_parameters():
print(name, ': ', param.requires_grad)
if __name__ == "__main__":
model = AutoModel.from_pretrained('모델명')
# 모델의 pool layer만 freeze
freeze_params(model.pool_layer)
show_requires_grad(model.pool_layer)
# 모델 전체 freeze
# freeze_params(model)
# show_requires_grad(model)
반응형
'AI' 카테고리의 다른 글
[논문 리뷰] P-Tuning v2: Prompt Tuning Can Be Comparable to Fine-tuning Universally Across Scales and Tasks (0) | 2023.08.01 |
---|---|
[Pytorch] nn.BCELoss(), nn.CrossEntropyLoss() (0) | 2023.04.12 |
GPU id 지정하여 학습하기 (0) | 2022.06.06 |
Neural Network 설명 및 직접 구현해보기 (0) | 2021.09.11 |
[PyTorch] 학습 Loss 그래프 그리기 (Tensorboard 이용) (0) | 2021.05.11 |
댓글