본문 바로가기

AI Codes/PyTorch15

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.
PyTorch pre-trained Models PyTorch에서는 사전 학습된 모델들을 제공한다. torchvision을 통해서 computer vision 분야의 모델들을 가져와서 학습할 수 있다. 2025.04.17 기준이다. 자세한 내용은 링크를 확인하면 된다. 아래의 컴퓨터 비전 세부 분야에 따라서 모델들을 불러올 수 있다.ClassificationSemantic SegmentationObject Detection, Instance Segmentation and Person Keypoint DetectionVideo ClassificationOptical FlowClassification더보기AlexNet ConvNeXt DenseNet EfficientNet EfficientNetV2 GoogLeNet Inception V3 MaxVit M.. 2025. 4. 17.
PyTorch Tensor의 차원 변환 파이토치에서 사용하는 텐서는 여러가지 형태로 차원을 변환할 수 있다. 차원의 추가, 삭제도 포함이다. 여기서는 squeeze, unsqueeze, view, reshape, traspose, permute를 알아본다. 1. unsqueeze 지정된 위치에 크기가 1일 차원을 추가 import torchx = torch.tensor([[1, 2, 3], [4, 5, 6]])x.shape>> torch.Size([2, 3])y = x.unsqueeze(0)y, y.shape>> (tensor([[[1, 2, 3], [4, 5, 6]]]), torch.Size([1, 2, 3])) y = x.unsqueeze(1)y, y.shape>>(tensor([[[1, 2.. 2025. 4. 16.