์ „์ฒด ๊ธ€

์ „์ฒด ๊ธ€

    Pytorch Dataset๊ณผ DataLoader

    ํŒŒ์ดํ† ์น˜์—์„œ ๋ฐ์ดํ„ฐ๋“ค์„ ํ•™์Šตํ•  ๋•Œ ๊ต‰์žฅํžˆ ์œ ์šฉํ•œ ๊ธฐ๋Šฅ์œผ๋กœ DataLoader๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. DataLoader๋Š” ํŒŒ์ดํ† ์น˜์—์„œ ๋ฐ์ดํ„ฐ๋“ค์„ ์›ํ•˜๋Š” batch size๋กœ ์ž˜๋ผ์ค๋‹ˆ๋‹ค. DataLoader๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด batch size์— ๋งž์ถ”์–ด ํ•™์Šต์„ ๊ต‰์žฅํžˆ ์‰ฝ๊ฒŒ ํ•™์Šต์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋•Œ DataLoader์— ๋„ฃ์–ด์ฃผ์–ด์•ผ ํ•˜๋Š” ๊ฐ’์ด Dataset์ด ๋ฉ๋‹ˆ๋‹ค. How To Use Dataset from torchvision import datasets, transforms train_dataset = datasets.MNIST( root = "data", download = True, train = True, transform = transforms.Compose([ transforms.ToTensor() ]..

    torchvision.transforms (ToTensor, Normalize, Resize, RandomCrop,Compose)

    transforms ๋ชจ๋“ˆ์€ ์ด๋ฏธ์ง€๋ฅผ ํ•™์Šต์„ ์œ„ํ•ด ์ ์ ˆํžˆ ๋ณ€ํ™˜ํ• ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“ˆ์—์„œ ์ฃผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ์†Œ๊ฐœํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. module import import torchvision.transforms as transforms transforms.ToTensor transforms.ToTensor() Pytorch์˜ ๋ฐฐ์—ด์€ ๋ฐฐ์—ด๊ตฌ์กฐ๊ฐ€ C*H*W(C:์ฑ„๋„, H:๋†’์ด, W:๋„ˆ๋น„)์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ PIL์ด๋ฏธ์ง€์™€ Numpy ๋ฐฐ์—ด์—์„œ๋Š” H*W*C์ž…๋‹ˆ๋‹ค. ToTensor๋Š” ์ด๋Ÿฌํ•œ ๋ฐ์ดํ„ฐ์˜ ๊ตฌ์กฐ๋ฅผ ๋ณ€๊ฒฝํ•ด์ค๋‹ˆ๋‹ค. ๋˜ํ•œ ToTensor๋Š” ์ด๋ฏธ์ง€ ํ”ฝ์…€์˜ ๋ฐ๊ธฐ์ •๋„๋ฅผ Scaleํ•ด์ค๋‹ˆ๋‹ค. ๋ฐ๊ธฐ์ •๋„๊ฐ€ 0~255๋กœ ํ‘œ์‹œ๋˜์—ˆ๋‹ค๋ฉด ๊ทธ ๊ฐ’์„ 0~1๋กœ scaleํ•ด์ฃผ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. transforms.Nomalize transforms.Norma..

    matplotlib์„ ํ™œ์šฉํ•œ ์‹œ๊ฐํ™” ๊ธฐ์ดˆ

    matplotlib์„ ํ™œ์šฉํ•œ ์‹œ๊ฐํ™” ๊ธฐ์ดˆ

    ๋จธ์‹ ๋Ÿฌ๋‹, ๋”ฅ๋Ÿฌ๋‹ ๊ณต๋ถ€๋ฅผ ํ•˜๋‹ค๋ณด๋ฉด ํ•ญ์ƒ ๋ชจ๋ธ์˜ ํ‰๊ฐ€์™€ ๋ฐ์ดํ„ฐ ๋ถ„์„์—์„œ ๊ทธ๋ž˜ํ”„๋กœ ์‹œ๊ฐํ™”ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ๋งˆ์ฃผํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ๊ฐ€ ๋‹ค์†Œ ์ง๊ด€์ ์ด๊ณ  ๊ฐ„๋‹จํ•˜๊ฒŒ ๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆด ์ˆ˜ ์žˆ์–ด์„œ ์ฝ๊ณ  ์ดํ•ดํ•˜๋Š”๋ฐ๋Š” ๋ฌด๋ฆฌ๊ฐ€ ์ „ํ˜€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ง์ ‘ ์‹œ๊ฐํ™”๋ฅผ ์œ„ํ•ด ๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ฆด ๋•Œ๋Š” ๊ต‰์žฅํžˆ ๋ง‰๋ง‰ํ•˜๊ณ  ์–ด๋ ค์›€์„ ๋Š๊ผˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ํฌ์ŠคํŒ…์„ ํ†ตํ•ด matplotlib์„ ํ™œ์šฉํ•˜์—ฌ ๊ทธ๋ž˜ํ”„๋ฅผ ์‹œ๊ฐํ™”ํ•˜๋Š” ์ฝ”๋“œ๋“ค์„ ์ •๋ฆฌํ•˜๊ณ  ์ดํ•ดํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์‹œ๊ฐํ™”๋Š” ๋ˆˆ์œผ๋กœ๋งŒ ์ดํ•ดํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ์ง์ ‘ ์ฝ”๋“œ๋ฅผ ๋”ฐ๋ผ ๊ตฌํ˜„ํ•ด๊ฐ€๋ฉฐ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ด ์ง์ ‘ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ํ›จ์”ฌ ๋งŽ์€ ๋„์›€์ด ๋˜๋ฏ€๋กœ ์ง์ ‘ ์ฝ”๋“œ๋“ค์„ ๋”ฐ๋ผ์น˜๋ฉด์„œ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์„ ์ถ”์ฒœ๋“œ๋ฆฝ๋‹ˆ๋‹ค. matplotlib matplotlib๋Š” Python์˜ ๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ ค์ฃผ๋Š” ๊ต‰์žฅํžˆ ์œ ์šฉํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. matplotlib๋ฅผ ํ™œ..

    [Pytorch] nn.module์„ ์ƒ์†๋ฐ›์„ ๋•Œ super().__init__()์„ ํ•˜๋Š” ์ด์œ 

    [Pytorch] nn.module์„ ์ƒ์†๋ฐ›์„ ๋•Œ super().__init__()์„ ํ•˜๋Š” ์ด์œ 

    ํŒŒ์ดํ† ์น˜์—์„œ ํด๋ž˜์Šค๋กœ Layer๋‚˜ Model์„ ๊ตฌํ˜„ํ•ด์ฃผ๋ฉด ํ•ญ์ƒ ์ƒ์„ฑ์ž์—์„œ super(class์ด๋ฆ„, self).__init__()์„ ์ž…๋ ฅํ•ด์ค๋‹ˆ๋‹ค. ์™œ ์ด๊ฒƒ์„ ์ž…๋ ฅํ•ด์•ผ ํ•˜๋Š”์ง€ ๊ถ๊ธˆํ•˜์—ฌ ์•Œ์•„๋ณด์•˜์Šต๋‹ˆ๋‹ค. super().__init__()์ด ์—†๋‹ค๋ฉด? import torch class Test(torch.nn.Module): def __init__(self): self.linear = torch.nn.Linear(3,2) def forward(self,x): return self.linear(x) Test๋ฅผ ์œ„ํ•ด ๊ต‰์žฅํžˆ ๊ฐ„๋‹จํ•œ torch.nn.Module์„ ์ƒ์†๋ฐ›๋Š” ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค์–ด๋ณด์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด ํด๋ž˜์Šค๋ฅผ ํ™œ์šฉํ•ด ๋ชจ๋ธ์„ ๋งŒ๋“ค์–ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. model = Test() ์ƒ์„ฑ์„ ํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด AttributeErro..