본문 바로가기

pytorch4

[PyTorch] TorchScript: Tracing vs. Scripting 안녕하세요, PyTorch로 학습한 모델을 배포하는 일은 굉장히 흔한 일인데요, 오늘은 TorchScript에서 활용하는 Tracing과 Scripting를 각각 설명하고 차이점을 비교하려고 합니다. 참고로 이 내용에는 여기 블로그가 많은 참고가 됐습니다. 그리고 TorchScript and PyTorch JIT | Deep Dive를 보시면 도움이 되실겁니다 시작에 앞서 두 방법은 모두 nn.Module을 전제로 합니다. PyTorch에서 nn.Module을 상속 받지 않은 모델은 존재하지 않는다고 봐도 무방합니다. 용어 설명 Export: Eager-mode Python code를 그래프로 변환하는 과정 (Eager-mode는 즉시 실행한다는 의미로, 컴파일을 하지 않는 파이썬의 기본 성질입니다) T.. 2023. 6. 4.
Mixed Precision - BF16의 특징과 장단점 안녕하세요, 오늘은 딥러닝에서 최근 활용되고 있는 BF16(bfloat16, Brain floating point)에 대해서 설명하도록 하겠습니다. 그리고 언제 뭘 쓰면 좋을지 비교해보고 PyTorch에서는 이걸 어떻게 쓰면 되는지 간단하게 소개하겠습니다. BF16이란? 이미 Mixed Precision을 아시는 분들 (굳이 몰라도 컴퓨터 과학을 배웠다면 모두가 아실)은 FP16에 대해 알고 계실 것 같습니다. FP16은 기존 32-bit로 표현하던 숫자들을 16-bit로 변환해서 데이터의 사이즈를 줄이는 방법입니다. 해당 내용은 포스팅1 또는 포스팅2 (둘 다 제가 쓴 글입니다)에 잘 설명되어 있으니 참고하시면 되겠습니다. 성공적으로 잘 줄였는데 또 뭐가 필요할까요? 문제는 역시 줄어든 bit수 만큼 .. 2023. 5. 23.
[PyTorch] nn.Linear에 대한 질문 안녕하세요, 오늘은 PyTorch를 쓰다보면 굉장히 많이 접하게 되는 nn.Linear 함수에 대해 설명하려고 합니다. nn.Linear란 먼저, 논문을 읽거나 기타 자료를 볼 때 nn.Linear는 Fully Connected Layer(FC) 또는 Dense Layer라고 표현을 합니다. Fully Connected, Dense와 같은 단어에서 느낌이 오듯, Input/Output의 노드를 빼먹지 않고 촘촘하게 연결한 구조를 갖습니다. 그렇다고 Input 또는 Output 노드 사이의 연결이 존재하지는 않고, Bipartite Graph를 떠올리시면 쉽습니다 (참고). nn.Linear란 어떤 역할을 할까요? Classification: 분류 문제의 경우, 보통 네트워크의 가장 마지막에 붙어 이전까지.. 2023. 4. 28.
[PyTorch] 간략한 자기 소개 안녕하세요. 딥러닝을 연구하는 많은 분들께서 PyTorch를 쓰고 계신 걸로 알고 있습니다. 저는 2017년말부터인가 이것을 쓰기 시작했는데요, 그동안 많은 시간을 들여 코딩했지만 언제부터인가 각 기능이 정확히 어떻게 동작하는지 알고 싶어졌습니다. 그래서 시간 나는대로 기본적인 내용부터 설명해볼까 합니다. 저는 개인적으로 PyTorch Forum에서 활동을 하고 있는데요, 말하기 민망할 정도로 가끔 들어가서 다른 사람들의 문제를 함께 고민하고 해결하는 시간을 갖습니다. 답변을 200개 정도 달았는데, 생각보다 채택률이 저조한 이유는 물론 모든 답변이 문제 해결로 이어진 것은 아니지만 문제를 해결한 답변에 체크를 안해주시는 분들이 꽤 많은 것 같아 손해보는 느낌이 듭니다... 뭐 아무튼 앞으로도 꾸준히 활.. 2023. 3. 30.