์ „์ฒด ๊ธ€

์ „์ฒด ๊ธ€

    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..

    [์„œํ‰]๋ฐ‘๋ฐ”๋‹ฅ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋Š” ๋”ฅ๋Ÿฌ๋‹1

    [์„œํ‰]๋ฐ‘๋ฐ”๋‹ฅ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋Š” ๋”ฅ๋Ÿฌ๋‹1

    ์„œํ‰ ์ „ ์žก๋‹ด(์ด ์ฑ…์„ ์ฝ์€ ์ด์œ ) ์ €๋Š” ๊ตฐ๋Œ€๋ฅผ ์ „์—ญํ•˜๊ณ  ์—ฐ๊ตฌ์‹ค์— ์กฐ์ธํ•˜์—ฌ ๋”ฅ๋Ÿฌ๋‹์„ ๊ณต๋ถ€ํ•˜๊ธฐ ์‹œ์ž‘ํ•œ ์ง€ 1๋‹ฌ ์กฐ๊ธˆ ๋” ์ง€๋‚ฌ์Šต๋‹ˆ๋‹ค. ํ•™๋ถ€ ๋•Œ ์ €๋Š” ์ด๋ก ์ ์ธ ๊ธฐ์ดˆ์ง€์‹์„ ์ฐจ๊ณก์ฐจ๊ณก ์Œ“์•„๊ฐ€๋ฉฐ ๊ณต๋ถ€ํ•˜๋Š” ํ•™์žํ˜• ์Šคํƒ€์ผ์„ ๊ณ ์ˆ˜ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊น€์˜ํ•œ ๋‹˜์˜ ๊ฐ•์˜๋กœ ๋ฐฑ์•ค๋“œ๋ฅผ ๊ณต๋ถ€ํ•˜๋ฉฐ ์ด๋ก ์„ ๋ชจ๋ฅด๋”๋ผ๋„ ์ผ๋‹จ ์‹ค๋ฌด์ ์œผ๋กœ ์‚ฝ์งˆํ•˜๋ฉฐ ๋ถ€๋”ชํžˆ๋Š” ์•ผ์ƒํ˜• ์Šคํƒ€์ผ์ด ๊ต‰์žฅํžˆ ๋น ๋ฅด๊ฒŒ ๋ฌด์—‡์ธ๊ฐ€๋ฅผ ์Šต๋“ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๊นจ๋‹ฌ์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ €๋Š” ์—ฐ๊ตฌ์‹ค์— ์กฐ์ธํ•˜๊ณ  1๋‹ฌ ๋™์•ˆ์€ ํŒŒ์ดํ† ์น˜๋ฅผ ํ™œ์šฉํ•ด ๋ฌด์ž‘์ • ๋ฐ์ด์ฝ˜ ๋Œ€ํšŒ์— ์ฐธ์—ฌํ•ด ๋”ฅ๋Ÿฌ๋‹์œผ๋กœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๊ณ  ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ •๋ง ๋น ๋ฅธ ์‹œ๊ฐ„์— ํŒŒ์ดํ† ์น˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ตํž ์ˆ˜ ์žˆ์—ˆ์ง€๋งŒ ์™œ ๊ทธ๋ ‡๊ฒŒ ํ•ด์•ผ ๋˜๋Š”์ง€์— ๋Œ€ํ•˜์—ฌ ๋‚ฉ๋“์ด ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์™œ? ๋ฏธ๋ถ„(backward)์„ ํ•˜๊ธฐ ์ „์— ์˜ˆ์ธก(forward)์„..