pyTorch16 Floating-point Number와 Mixed Precision 컴퓨터가 숫자를 저장하는 방법 중 하나인 Floating point number랑 mixed precision을 블로그에 정리한적이 없길래 간단하게 정리한다. mantissa는 기억이 나는데 exponent 용어가 기억이 안나서 순간 당황했다. Nvidia에서 퍼온 그림인데 위와 같이 float 자료형은 Sign, Range (Exponent), 그리고 Precision (Mantissa)으로 구성된다. sign은 말 그대로 양수냐 음수냐의 부호를 나타내고, range (exponent)에서 숫자의 자리수를 표기하고, precision (mantissa)에서 숫자의 정확도를 표현한다. $(-1)^{sign}$ * $2^E$ * M 의 형태로 숫자를 표현한다. 이때 M이 크면 클수록 비트 수가 많.. 2025. 4. 29. PyTorch Random Number Generating 파이토치에서 랜덤 넘버를 만들 경우가 있는데 몇가지 자주 쓰던 방법을 정리한다. 추가적으로 [1, 2, 3, 4, 5]와 같은 연속된 수의 텐서를 만드는 방법과 순열을 적용하는 방법도 추가한다. 다음의 함수들을 다룬다. randrand_likerandintrandint_like randnrandn_likenormalrandpermarangelinspace 1. torch.rand()와 torch.rand_like() [0, 1) 의 범위의 uniform dist 유니폼 분포에서 뽑는다. rand_like는 zeros_like처럼 목표가 되는 텐서와 똑같은 형태로 random number generating (이하 RNG) 난수 생성을 수행한다. import torchprint(torch.rand(4).. 2025. 4. 20. PyTorch Products 파이토치에서 지원하는 element-wise product (Hadamrad product), dot product, matrix multiplication 등등을 알아본다. 구체적인 명령어들은 아래와 같다. *torch.dottorch.matmultorch.mm@torch.bmmtorch.vdottorch.outertorch.tensordot Element-wise Product = Hadamard Product연산자들* 1D Tensor 1차원 텐서# element-wise product# hadamard producta = torch.Tensor([1, 2, 3])b = torch.Tensor([0, 2, 4])a * b>> tensor([ 0., 4., 12.]) 2D 이상의 텐서 # e.. 2025. 4. 20. PyTorch zero tensor, one tensor 등등 0으로 채워진 벡터나 텐서를 만들 일이 제법 있다. 특히 다른 텐서와 똑같은 모양을 만들 일이 있는데 zeros, ones, zeros_like를 사용하면 tensor의 모양을 일일이 지정해주지 않아도 알아서 똑같은 모양으로 만들어준다. 굉장히 편리한 기능이다. 다음은 지정된 값으로 원하는 모양 shape의 텐서를 만드는 방법들이다. zeros는 0으로ones는 1로full은 지정된 값으로empty는 uninitialized values로 채워진다. import torcha = torch.zeros(2,3) # 0의 값들b = torch.ones(2,3) # 1의 값들c = torch.full((2,3),2) # 지정된 값, 2로 채운다. d = torch.empty(2,3) # uninitializ.. 2025. 4. 20. nanoGPT, PyTorch DDP, LLM 시각화 GPT-2와 같은 거대한 규모의 Decoder 구조의 언어 모델을 pre-trian 부터 학습하는 경험을 하고 싶은 경우가 있다. 이때는 Andrej Karpathy가 만든 Nano GPT를 참조하면 좋다. Github에 소스 코드가 공개되어 있을 뿐만 아니라 4시간짜리 친절한 강의 영상도 있다. Let's reproduce GPT-2 강의 영상 (링크)nanoGPT 깃허브 (링크)build nanoGPT 깃허브 (링크)한국 파이토치에서의 소개 글 (링크) 개인적으로 유용하게 익혔던 내용은 다음과 같다. Pre-train을 위한 next token prediction과 loss 함수 구성gradient accumulation 구현mixed precision을 torch.autocast로 적용 Mult.. 2025. 4. 18. Computer Vision Data Augmentation 컴퓨터 비전 분야에서의 데이터 증강은 표준화 되어 있고 코드로 잘 구현되어 있다. PyTorch의 torchvision.transforms와 Albumentations를 활용해서 구현하면 간편하게 구현할 수 있다. Crop, resize, rotate, color change, jitter 등등을 포함한다. Torchvision transforms torchvision의 transforms의 예시 (링크) Geometric Transforms 더보기PadResizeCenterCropFiveCropRandomPerspectiveRandomRotationRandomAffineElasticTransformRandomCropRandomResizedCropPhotometric Transforms 더보기Grays.. 2025. 4. 17. 이전 1 2 3 다음