AI
모델의 특정 layer를 freeze시키기
체봄
2023. 2. 2. 21:28
모델의 특정 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)
반응형