본문 바로가기
AI/딥러닝

계산 그래프 (동적 PyTorch, 정적 TensorFlow)

by Mujae98 2024. 8. 11.

계산 그래프.. 딥러닝 책을 피면 항상 나올 수밖에 없는 녀석

그런데 막상 동적 정적이 바로 이해되지 않아 정리해보려한다. (이미 잘 아시는 분들께서는 다른 글을 읽으시거나 피드백 부탁드립니다.)

 

계산 그래프

 

 

딥러닝책을 보면 반드시 나오는 이녀석이 있다.

그냥 쉽게 계산 그래프는 연산 과정을 시각적으로 표현할 수 있고, 컴퓨터가 효율적으로 계산할 수 있도록 그래프 방식으로 표현하는 것

또한 그래프 방식을 사용함으로써 전의 값들을 저장할 수 있어 backpropagation이 가능한 것이 중요한 것 같다.

 

자 그래서 동적, 정적은 뭔 차인데?

말 그대로다.

동적은 그래프가 바뀔 수도 있는 것이고, 정적은 원모양 그대로 가는 것이다.

 

출처: CS231n

 

정적은 미리 다 정해두고 그거를 반복해서 쓰는 것이고, 동적은 정해두긴 하는데 매번 그래프를 새로 만들어 바뀔 수도 있다는 것이 차이점.

 

정리

정적 계산 그래프: 그래프를 사전에 정의하고 이를 계속 사용 (tensorflow 1.x 부터는 동적 지원)

장점: 전체 그래프를 알기 때문에 최적화 가능, 분산 학습에도 유리.

단점: 유연성이 부족함

 

동적 계산 그래프: 계산 그래프를 실행 시점에서 매번 새로 만듬 -> 중간에 변경 가능

장점: 유연성, 변동성

단점: 최적화가 정적보다 어려우며 리소스 사용이 증가할 수 있다.

유연성 낮음 높음
성능 최적화 용이 어려움
디버깅 어려움 용이
변동성 입력 처리 어려움 용이
사용 예시 TensorFlow (1.x) PyTorch

비교

 

But 연구에서는 새로운 구조를 계속 시도하다보니 PyTorch가 선호됨.