티스토리 뷰

 

모델의 특정 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)

 

반응형

댓글