0.
freecodecamp.org의 파이토치 튜토리얼 4:03:02
(PyTorch for Deep Learning & Machine Learning – Full Course
,https://www.youtube.com/watch?v=V_xro1bcAuA&t=8920s)
# Setup device agnostic code (기기에 대한 불가지론적 코드 = 기기의존적이지 않도록 만드는 코드)
device = "cuda" if torch.cuda.is_available() else "cpu"
device
CUDA semantics
https://pytorch.org/docs/stable/notes/cuda.html
1.
제대로된 모델학습을 하려면 GPU나 NPU가 필요해지고..
CPU만 있는 기기, CPU+GPU만 있는 기기에 따라서
또 분기점이 생긴다.
그렇기 때문에 코드상에서
Device Agnostic Code를 작성하여
특정 기기에만 의존하지 않고 유연하게 코드가 작동하도록 만드는 것이 중요할 것이다.
2.
(잡담1)
마이크로프로세서를 처음 배울 때에도
왜 사람들이 uint32_t나 uint64_t와 같은 커스텀 데이터타입으로 int를 쓰지? 했는데
그 이유는 생각보다 int와 long이 OS에 따라 표준없는 방식을 사용했기 때문이다.
386시절의 MS-DOS에서는 int가 2byte = 16bit였고
지금의 int는 거의 4byte = 32bit로 통일이 되었으나
아직까지도
윈도우의 long 데이터타입은 4byte = 32bit인데
리눅스의 long 데이터타입은 8byte = 64bit인 것을 알 수 있다.
이러한 기기의존적인 요소가 생기면
코드를 유지보수하는 과정에 큰 하자가 생긴다.
3.
(잡담2)
또 딥러닝 환경에서는 재현성(Reproducibility)의 개념도 매우 중요해진다.
똑같은 데이터를 가지고
특정 초기값과 학습을 통한 가중치의 조절과 계산했는데,
어느 환경에서는 성공적으로 loss가 줄어들며 학습이되고,
어느 환경에서는 loss가 날뛰며 학습이 안되어
비결정적indeterministic인 결과를 보이게 되면..
해당 모델을 검증하는 것에 큰 어려움이 있을 것이다.
(https://pytorch.org/docs/stable/notes/randomness.html)
4.
여하튼 그런의미에서 기기에 의존하지 않는
Device Agnostic Code를 작성하는 것은 중요하다.
특정기기에 종속되는 코드를 다른 기기에서 재작성하는 것은
리소스낭비이다.
그렇기 때문에 처음부터
"네가 어떤 기기를 사용할지는 모르겠지만" = "불가지론적인" = Agnostic한
코드를 작성하는 것이 중요하다.
(https://pytorch.org/docs/stable/notes/cuda.html)
device = "cuda" if torch.cuda.is_available() else "cpu"
device
5.
역시 애매한 데이터보다는
공신력있는 원본데이터를 보는게 좋다.
아래의 공식사이트를 통해 직접 읽어보는 습관을 기르자.
https://pytorch.org/docs/stable/notes/cuda.html#best-practices
기타)
'지식이 늘었다 > 데이터, 통계, 딥러닝' 카테고리의 다른 글
(일기장) GPU이외의 다른 행렬 연산 수단을 GPT에게 질문해봄 (0) | 2025.02.20 |
---|---|
구글 코랩 사용법 (0) | 2025.01.08 |
재무분석을 위한 Python & ML - 개요 (0) | 2025.01.08 |
Impulse Response, Step Response (0) | 2025.01.04 |
푸리에 해석 (0) | 2025.01.04 |