AI\ML\DL/Pytorch
-
torch.log_softmaxAI\ML\DL/Pytorch 2024. 3. 11. 14:07
torch.log_softmax ํจ์๋ softmax ํจ์์ log๋ฅผ ์ทจํ ๊ฒ๊ณผ ๊ฐ๋ค. softmax์ Log ๋ ์ฐ์ฐ์ ๋ฐ๋ก ์ํํ๋ ๊ฒ๋ณด๋ค log_softmax๋ฅผ ํตํด ํ๋ฒ์ ์ํํ๋ ๊ฒ์ด ๋ ๋น ๋ฅด๊ณ ์์น์ ์ผ๋ก ์์ ์ ์ด๋ผ๊ณ ํ๋ค. ์ ์ฝ๋๋ฅผ ๋ณด๋ฉด ๋๋ค์ผ๋ก ์์ฑํ 3x5 ํ ์ x์ softmax๋ฅผ ์ทจํ๊ณ log๋ฅผ ์ทจํ ๊ฒฐ๊ณผ๋, log_softmax๋ฅผ ์ทจํ ๊ฒฐ๊ณผ๋ ๋์ผํ๋ค๋ ๊ฒ์ ์ ์ ์๋ค. ์ ๋ฆฌํ๋ฉด log_softmax๋ ๋ค์ค๋ถ๋ฅ ๋ฌธ์ ์์ logit์ softmax ์ทจํ ๋ค์ 0๊ณผ 1์ฌ์ด์ ํ๋ฅ ๋ก ๋ณํํ๋ ํจ์์ด๋ค.
-
๋ถ์ฐ ๋ฐ ๋ณ๋ ฌ ํ์ตAI\ML\DL/Pytorch 2023. 12. 13. 15:27
๋ถ์ฐ ํ์ต(Distributed training)์ ํ์ต ์ํฌ๋ก๋๋ฅผ ์ฌ๋ฌ ์์ ์ ๋ ธ๋์ ๋ถ์ฐ์์ผ ํ๋ จ ์๋์ ๋ชจ๋ธ ์ ํ๋๋ฅผ ํฌ๊ฒ ํฅ์์ํค๋ ๋ชจ๋ธ ํ์ต ํจ๋ฌ๋ค์์ด๋ค. PyTorch์์ ๋ถ์ฐ ํ์ต์ ์ํํ ์ ์๋ ๋ช ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์์ผ๋ฉฐ ๊ฐ ๋ฐฉ๋ฒ์ ์ฌ์ฉ ์ฉ๋๋ณ๋ก ์ฅ์ ์ ๊ฐ์ง๋ค. DistributedDataParallel (DDP) Fully Shared Data Parallel (FSDP) Remote Procedure Call (RPC) distributed traininng Custom Extensions ๋น๋ถ์ฐ ํ์ต์ ๋จ์ผ GPU์์ ๋ชจ๋ธ์ ํ์ต์ํจ๋ค. ํ์ต ๊ณผ์ ์ ๋ค์๊ณผ ๊ฐ๋ค. 1. DataLoader๋ก๋ถํฐ ์ ๋ ฅ ๋ฐฐ์น๋ฅผ ๋ฐ๋๋ค. 2. Forward pass๋ฅผ ํตํด loss ๊ณ์ฐ 3. Backward ..
-
torch.cumprod() w.r.t. diffusion noise schedulingAI\ML\DL/Pytorch 2023. 12. 3. 19:25
[cumprod: cumulative product ํจ์] torch.cumprod ํจ์๋ PyTorch ์์ ์ ๊ณตํ๋ ํจ์๋ก, ํ ์์ ๋์ ๊ณฑ์ ์์๋ณ๋ก(element-wise) ๊ณ์ฐํด์ค๋ค. ์ฌ์ฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ๋ค. import torch tensor = torch.tensor([1, 2, 3, 4]) cumprod_result = torch.cumprod(tensor, dim=0) print(cumprod_result) tensor([ 1, 2, 6, 24]) ์๋ฅผ ๋ค์ด, 'torch.tensor([1,2,3,4])' ํ ์์ ๋ํด torch.cumprod ํจ์๋ฅผ dim=0 (์ฒซ๋ฒ์งธ ์ฐจ์)์ผ๋ก ์ ์ฉํ๋ฉด, ์ด ํจ์๋ ๊ฐ ์์์ ๋์ ๊ณฑ์ ๊ณ์ฐํ์ฌ [1,2,6,24] ๋ฅผ ๋ฐํํ๋ค. 1 1x2=2 1x2x3=6..
-
torch.cat vs torch.stackAI\ML\DL/Pytorch 2023. 9. 29. 22:14
torch.cat ๊ณผ torch.stack ์ ์๋ก ๋ค๋ฅธ ํ ์ ๊ฒฐํฉ ๋ฐฉ๋ฒ์ด๋ค. 1) torch.cat (Concatenate) torch.cat ์ ์๋ก ๋ค๋ฅธ ํ๋ ฌ์ด์๋ ๋ ํ ์๋ฅผ ํ๋์ ํ ์๋ก ๋ง๋ค์ด์ค๋ค. ๋ฐ๋ผ์ ์ฐจ์์ ๋ณํ๊ฐ ์๊ธฐ์ง ์๋๋ค. ์๋ฅผ ๋ค์ด ๋ ๊ฐ์ 2x3 ์ง๋ฆฌ ํ๋ ฌ์ cat ํด์ฃผ๋ฉด ์์์ฃผ๋ ๋ฐฉํฅ์ ๋ฐ๋ผ 4x3 ํ๋ ฌ์ด๋ 2x6 ํ๋ ฌ์ด ๋๋ค. import torch # 2x3 ํ๋ ฌ ํ๋ a = torch.tensor([[1,2,3],[4,5,6]]) # 2x3 ํ๋ ฌ ํ๋ b = torch.tensor([[7,8,9],[10,11,12]]) # ํ๋ฐฉํฅ ์๊ธฐ c = torch.cat([a,b], dim=0) # ์ด๋ฐฉํฅ ์๊ธฐ d = torch.cat([a,b], dim=1) print(c) pri..
-
CNN ๋ชจ๋ธ์ classifier๋จ์์ FC layer์ ์ ๋ ฅ ๋ ธ๋ ๊ฐ์AI\ML\DL/Pytorch 2023. 8. 3. 21:35
๏นก ์ด๋ฏธ์ง ๋ค์ค๋ถ๋ฅ ๋ฌธ์ ์์ CNN์ ์ฌ์ฉํ๋ฉด convolution layer ์ ReLU, Batchnorm2d, MaxPool2d๋ฅผ ๋ฐ๋ณตํ๋ค๊ฐ ๋ง์ง๋ง์๋ fully connected layer๋ฅผ ํต๊ณผํด์ softmax๋ฅผ ์ป์ด ๋ถ๋ฅ๋ฅผ ํด์ฃผ์ด์ผ ํ๋ค. ์๋ฅผ ๋ค์ด CIFAR10 ๋ฐ์ดํฐ์ ์ผ๋ก 10๊ฐ์ง๋ฅผ ๋ถ๋ฅํ๋ ๋คํธ์ํฌ๋ฅผ ๋ง๋ ๋ค๊ณ ํ์. ํต์์ ์ธ ๋คํธ์์์๋ CNN ๋ ์ด์ด๋ฅผ ํต๊ณผํด์ ๋ค์ํ ํน์ง๋งต์ ๋ฝ์๋ด๊ณ ํ๋ง์ ํด์ ์ฌ์ด์ฆ๋ฅผ ๋ฐ์ผ๋ก ์ค์ธ๋ค. (Maxpooling์ ํ๋ค๊ณ ํด์ ์ฑ๋์๊ฐ ์ค์ง๋ ์๋๋ค. ์ฑ๋๋ณ๋ก ๊ฐ๊ฐ ํ๋งํด์ฃผ๋ ๊ฑฐ๋๊น) ์ถฉ๋ถํ ํน์ง๋งต์ ์ป์๋ค๋ฉด nn.Linear( )๋ฅผ ํ์ฉํด์ ์ต์ข ์ ์ธ ์ถ๋ ฅ ๋ ธ๋๋ฅผ 10๊ฐ๋ก ์ค์ฌ์ค์ผ ํ ๊ฒ์ด๋ค. ์ด๋ nn.Linear(?, 10)์ ? ๋ถ๋ถ์ ์ด๋ค๊ฒ์ ์จ์ผ..
-
PyTorch์ Numpy์์์ ์ด๋ฏธ์ง ๋ฐ์ดํฐ ํฌ๋งท ์ฐจ์ดAI\ML\DL/Pytorch 2023. 8. 1. 21:43
์ผ๋ฐ์ ์ผ๋ก ์ด๋ฏธ์ง ๋ฐ์ดํฐ๋ ๋๋น, ๋์ด, ์ฑ๋ ์์๋ก ํํ๋๋ RGB ํฌ๋งท์ ์ฌ์ฉํ๋ค.์๋ฅผ ๋ค์ด, 32x32 ํฌ๊ธฐ์ ์ปฌ๋ฌ ์ด๋ฏธ์ง์ ๊ฒฝ์ฐ (32,32,3) ์ผ๋ก ํํ๋๋ฉฐ, ๊ฐ ์ฐจ์์ ๊ฐ๊ฐ (ํ, ์ด, ์ฑ๋) ์ ๋ํ๋ธ๋ค. ์ด๋ฏธ์ง๋ฅผ (ํ,์ด,์ฑ) ํ์์ผ๋ก ์ฝ๊ณ ์ฒ๋ฆฌํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋ค์๊ณผ ๊ฐ๋ค.NumpyOpenCVMatplotlib (์ด๋ฏธ์ง ์ฒ๋ฆฌ๋ ์๋์ง๋ง ๋ฐ์ดํฐ ์๊ฐํ ํ ๋) ์ด๋ฅผ ํ์ธํด๋ณด๊ธฐ ์ํด numpy ๋ก ๋๋คํ ์ ์๋ฅผ ์์ฑํ์ฌ 3์ฑ๋ (RGB) ์ด๋ฏธ์ง๋ฅผ ์์ฑํ๋ ์ฝ๋๋ฅผ ์์ฑํด ๋ณด์๋ค. ์์ฑํ ์ด๋ฏธ์ง ๋ฐ์ดํฐ์ shape์ ํ์ธํ๋ฉด (ํ,์ด,์ฑ๋) ์์๋ก ์ถ๋ ฅ๋๋ ๊ฒ์ ํ์ธํ ์ ์๋ค. import numpy as npimport matplotlib.pyplot as plt# ๊ฐ์์ ์ด๋ฏธ์ง ๋ฐ์ดํฐ ์..
-
torch.utils.data.DataLoaderAI\ML\DL/Pytorch 2023. 7. 25. 18:41
DataLoader DataLoader ๋ ๋ฐ์ดํฐ์ ์ ๋ฏธ๋ ๋ฐฐ์น ๋จ์๋ก ๋ถํ ํ์ฌ ํ์ตํ๋ก์ธ์ค์ ์ ๊ณตํด์ฃผ๋ ์ญํ ์ ํ๋ค. ๋ฐ์ดํฐ๋ก๋ (DataLoader) ๊ฐ์ฒด๋ ํ์ต์ ์ฌ์ฉ๋ ๋ฐ์ดํฐ ์ ์ฒด๋ฅผ ๋ณด๊ดํ๋ค๊ฐ ๋ชจ๋ธ ํ์ต์ ํ ๋ ๋ฐฐ์น ํฌ๊ธฐ๋งํผ ๋ฐ์ดํฐ๋ฅผ ๊บผ๋ด์ ์ฌ์ฉํ๋ค. ์ด๋ ์ฃผ์ํ ๊ฒ์ ๋ฐ์ดํฐ๋ฅผ ๋ฏธ๋ฆฌ ์๋ผ ๋๋ ๊ฒ์ด ์๋๋ผ ๋ด๋ถ์ ์ผ๋ก ๋ฐ๋ณต์ (iterator)์ ํฌํจ๋ ์ธ๋ฑ์ค (index)๋ฅผ ์ด์ฉํ์ฌ ๋ฐฐ์น ํฌ๊ธฐ๋งํผ ๋ฐ์ดํฐ๋ฅผ ๋ฐํํ๋ค๋ ๊ฒ์ด๋ค. DataLoader ์ฌ์ฉ ์์ ์๋์ ์ฝ๋๋ ๊ฐ๊ฐ 5๊ฐ์ ์ํ์ ๊ฐ์ง ๋ฐ์ดํฐ (data; example data) ์ ๋ ์ด๋ธ (labels) ํ ์๋ก dataset์ ๋ง๋ ํ์ dataloader๋ฅผ ๋ง๋ค์ด์ ๋ฐฐ์น ํฌ๊ธฐ๋งํผ ๋ฐ์ดํฐ๋ฅผ ๋น๋ณต์์ถ์ถํ์ฌ ํ๋ฆฐํธํ๋ ๊ฐ๋จํ ์ฝ๋์ด๋ค. ์ด..
-
nn.LinearAI\ML\DL/Pytorch 2023. 7. 14. 21:04
Fully connected layer nn.Linear(์ ๋ ฅ๋ ธ๋ ๊ฐ์, ์ถ๋ ฅ๋ ธ๋ ๊ฐ์) ์์ ๋ฌธ์๋ฅผ ๋ณด๋ฉด, nn.Linear() ์์ ์ ๋ ฅ ๋ฒกํฐ $x$ ์ ๊ฐ์ค์น ๋ฒกํฐ $w$ ๋ฅผ ๊ณฑํด์ค ๋, ๊ฐ์ค์น $w$์ transpose๋ฅผ ์ทจํด์ค์ ๊ณฑํด์ค๋ค. ๊ทธ ์ด์ ๋ ๋ฌด์์ผ๊น? mlp ์์ ๋ ธ๋๋ ์ฑ๋์ ์๋ฏธํ๋ค. nn.Linear ๋ ์ ๋ ฅ์ผ๋ก 1D data๊ฐ ๋ค์ด์ค๊ธธ ๊ธฐ๋ํ๋๋ฐ, ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฌ ๊ฐ ํต๊ณผ์ํฌ ๋ ํน์ ์ฑ๋ ์๋ฅผ ๊ฐ์ง ๋ฐ์ดํฐ n๊ฐ๋ฅผ (๊ฐ์n $\times$ ์ฑ๋) ํํ๋ก ํต๊ณผ์์ผ์ผ ํ๋ค. weight ๋ํ (๊ฐ์x์ฑ๋) ํํ๋ก ํํํด์ฃผ์. ์ผ๋จ weight์ ์ฑ๋์ ์์ ์๋ ๋ ธ๋์ ์ฑ๋์ด๋ ๋ง์ถฐ์ผ ํด์ ๊ฐ์ค์น์ ์ฑ๋์ ์ ๋ ฅ ๋ ธ๋์ ์ฑ๋์๋ก ์ ํด์ง ์ํ์ด๋ค. ์๋ฅผ ๋ค์ด nn.Linear(3,2) ์ผ..