Hello Computer Vision

nn.ReLU 에서의 inplace = True 의미 본문

딥러닝/파이토치

nn.ReLU 에서의 inplace = True 의미

지웅쓰 2023. 1. 19. 21:22

활성화 함수로 가장 많이 쓰이는 ReLU 함수에서 종종 nn.ReLU(inplace = True)를 볼 수 있다.

 

파이토치 공식문서에는 정확히 이렇게 적혀있다.

inplace (bool) – can optionally do the operation in-place. Default: False

 

이에 대해 해석해보자면 inplace값을 True로 준다면 인풋 값에 대한 결과값을 따로 저장하는 것이 아니라

그 자리에 있던 데이터 값을 대신하는 것이라고 할 수 있다.

 

조금 복잡해보일 수 있지만 정리하자면 들어온 input값이 없어지고 output값만 남는다고 할 수 있다.

따라서 기존에 input값을 저장했던 메모리를 따로 할당할 필요가 없으니 약간의 메모리적인 이득을 얻을 수 있다고 하는데

이 부분은 현업에 내가 있는 것이 아니라 어느 정도 차이가나는지는 모르겠다.

 

그렇다면 어쨌든 좋은 기능같은데 왜 기본값은 False일까?

False를 주어도 일단 아무 문제가 없지만 만약 True값을 주어 input값을 소실시킨다면 gradient과정에서 문제가 생길 수 있다고 합니다.

이 부분도 아직 겪어보지는 못했지만.. 아직은 엄청 큰 모델을 돌리지를 않으니 굳이 True값을 설정할 필요가 없다고 생각한다!

'딥러닝 > 파이토치' 카테고리의 다른 글

transforms.Resize  (0) 2023.01.21
nn.AdaptiveAvgPool2d 란?  (0) 2023.01.19
nn.MaxPooling 에서의 ceil mode  (0) 2023.01.19
nn.ModuleList에 대해 알아보기  (0) 2022.12.31
파이토치 모델 구조 살펴보기(summary)  (0) 2022.11.15