hye-log

[๋ถ€์ŠคํŠธ์บ ํ”„ AI Tech]WEEK 06_DAY 26 ๋ณธ๋ฌธ

Boostcourse/AI Tech 4๊ธฐ

[๋ถ€์ŠคํŠธ์บ ํ”„ AI Tech]WEEK 06_DAY 26

iihye_ 2022. 10. 27. 12:23

๐Ÿ”ฅ ๊ฐœ๋ณ„ํ•™์Šต


[5] Model 1- Model with Pytorch

1. Model

1) object, person, system ๋“ฑ ์ •๋ณด์˜ ํ‘œํ˜„

 

2. Design Model with Pytorch

1) Pytorch

- Open Source Machine Learning Framework

- ํŠน์ง• : low-level, Pythonic, Flexibility 

2) nn.Module

- Pytorch์˜ ๋ชจ๋“  ๋ ˆ์ด์–ด๋Š” nn.Module ํด๋ž˜์Šค๋ฅผ ๋”ฐ๋ฆ„

import torch.nn as nn
import torch.nn.functional as F

class MyModel(nn.Module):
    def __init__(self):
    	super(MyModel, self).__init__()
        self.conv1 = nn.Conv2d(1, 20, 5)
        self.conv2 = nn.Conv2d(20, 20, 5)
        
    def forward(self, x):
    	x = F.relu(self.conv1(x))
        return F.relu(self.conv2(x))

- forward : ๋ชจ๋ธ์ด ํ˜ธ์ถœ๋˜์—ˆ์„ ๋•Œ ์‹คํ–‰๋˜๋Š” ํ•จ์ˆ˜

3) nn.Module์„ ์ƒ์†๋ฐ›์€ ๋ชจ๋“  ํด๋ž˜์Šค์˜ ํŠน์ง•

- child modules๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Œ

- ์ •์˜๋œ ๋ชจ๋ธ์˜ forward๋ฅผ ํ•œ ๋ฒˆ๋งŒ ์‹คํ–‰ํ•ด๋„ ๊ทธ ๋ชจ๋ธ์˜ forward์— ์ •์˜๋œ ๋ชจ๋“ˆ ๊ฐ๊ฐ์˜ forward๋„ ์‹คํ–‰๋จ

4) Parameters

- ๋ชจ๋ธ์— ์ •์˜๋˜์–ด ์žˆ๋Š” modules๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ณ„์‚ฐ์— ์“ฐ์ด๋Š” Parameter

- state_dict()  : key ๊ฐ’๊ณผ ํ•จ๊ป˜ ์žˆ์–ด์„œ ์–ด๋Š ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐ’์ธ์ง€ ์‰ฝ๊ฒŒ ํŒŒ์•… ๊ฐ€๋Šฅ

- parameters() : tensor ์ƒํƒœ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐ’๋งŒ ๊ฐ€์ ธ์˜ด

- data, grad, requires_grad ๋ณ€์ˆ˜ ๋“ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Œ

5) Python์˜ Pythonic

- Dictionary์™€ ๊ฐ™์€ ํ˜•์‹๊ณผ ๊ตฌ์กฐ๋ฅผ ์•Œ๊ณ  ์žˆ์œผ๋ฉด ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์‘์šฉ๋„ ๊ฐ€๋Šฅํ•˜๊ณ , ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ์—๋Ÿฌ๋ฅผ ํ•ธ๋“ค๋งํ•  ์ˆ˜ ์žˆ์Œ


4. Github ์—ฐ๊ฒฐํ•˜๊ธฐ

1) ๊ณ„์ • ์—ฐ๊ฒฐ

git config user.name
git config user.email

 

2) ์ด๋ฏธ ๋งŒ๋“ค์–ด์ง„ repository์— git ์—ฐ๊ฒฐํ•˜๊ธฐ

์ฃผ์˜! ์ด๋ฏธ ๋งŒ๋“ค์–ด์ง„ repository์—๋Š” git init์ด๋‚˜ git remote add origin์„ ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ ๋œ๋‹ค!

git clone [REPOSITORY_URL]

 

3) ํด๋” ์ƒ์„ฑํ•˜๊ณ  ํŒŒ์ผ ์ปค๋ฐ‹ํ•˜๊ธฐ

mkdir [FOLDER_NAME]
cd [FOLDER_NAME]
git add [FILE_NAME]
git status
git commit -m "[COMMIT_MESSAGE]"
git push -u origin master

 

[Python]ImportError: cannot import name 'Concatenate' from 'typing_extensions'

โš ๏ธ ์—๋Ÿฌ ์ƒํ™ฉ โœ… ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• 0) typing_extensions๊ฐ€ ์„ค์น˜๋˜์ง€ ์•Š์•˜๋‹ค๋ฉด ์„ค์น˜ํ•˜๊ธฐ pip install typing-extensions 1) typing-extensions๊ฐ€ ์„ค์น˜๋˜์—ˆ์ง€๋งŒ ์ตœ์‹  ๋ฒ„์ „์ด ์•„๋‹Œ ๊ฒฝ์šฐ official ํ™ˆํŽ˜์ด์ง€๋ฅผ ์ฐธ๊ณ ํ•ด์„œ ๋ฒ„..

hye-log.tistory.com


๐Ÿ”ฅ์˜ค๋Š˜์˜ ํšŒ๊ณ 

๋ฉ˜ํ† ๋ง์„ ์‹œ์ž‘ํ•˜๋Š” ์ˆ˜์š”์ผ! ์ด๋ฒˆ ๋Œ€ํšŒ ๋ฐ์ดํ„ฐ์…‹์ด class imbalance๊ฐ€ ์‹ฌํ•˜๋‹ค๋ณด๋‹ˆ๊นŒ(์‚ฌ์‹ค ์–ด๋–ค ๋ฐ์ดํ„ฐ์…‹๋„ class balance ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ๊ธฐ ์–ด๋ ต์ง€๋งŒ..) ์–ด๋–ป๊ฒŒ imbalance๋ฅผ ๋‹ค๋ฃจ์–ด์•ผ ํ•˜๋Š”์ง€ ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์„ ์•Œ๋ ค์ฃผ์…จ๋‹ค. ํ•ต์‹ฌ์€ ๋ฐ์ดํ„ฐ์˜ imbalacne๋Š” ์ž˜๋ชป๋œ ๊ฒŒ ์•„๋‹ˆ๋‹ค! ์‹ค์ œ๋กœ ์˜๋ฃŒ ์˜์ƒ ๋ฐ์ดํ„ฐ์…‹๋„ ์ •์ƒ๊ตฐ ๋Œ€๋น„ ์งˆํ™˜๊ตฐ์ด 10% ๋ฏธ๋งŒ์ด๊ธฐ ๋•Œ๋ฌธ์— imbalance๋Š” ์–ด๋Š ๋ฐ์ดํ„ฐ์…‹์ด๋“  ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ์ด๋‹ค. ๋‹ค๋งŒ class imbalance๊ฐ€ ๋ฌธ์ œ๊ฐ€ ๋˜๋Š” ๊ฒฝ์šฐ๋Š” ํ•™์Šตํ•  ๋ฐ์ดํ„ฐ์˜ ์ˆ˜๊ฐ€ ํ™•์—ฐํ•˜๊ฒŒ ์ ์œผ๋ฉด ๋ฌธ์ œ๊ฐ€ ๋œ๋‹ค. ๋”ฐ๋ผ์„œ imbalance๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ ์€ ๋ฐ์ดํ„ฐ ์ˆ˜๋ฅผ ๋งŽ๊ฒŒ ๋งŒ๋“œ๋Š” oversampling ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค! ์˜คํ›„ ํ”ผ์–ด์„ธ์…˜ ๋•Œ์—๋Š” ์˜ค์ „์— ๊ณต๊ฐœ๋œ baseline ์ฝ”๋“œ๋ฅผ ๋ณด๊ณ  ๋ณ€์ธ ํ†ต์ œ๋ฅผ ํ†ตํ•ด์„œ ์–ด๋–ค augmentation ๋ฐฉ๋ฒ•์ด ์ข‹์€์ง€๋ฅผ ํ…Œ์ŠคํŠธํ•ด๋ณด์•˜๋‹ค. ipynb ํŒŒ์ผ์ด ์•„๋‹ˆ๋ผ py ํŒŒ์ผ์ธ์ง€๋ผ ์ƒ๊ฐํ•˜๊ณ  ๋ถ„์„ํ•  ๋ถ€๋ถ„์ด ๋งŽ์•˜์ง€๋งŒ, ๊ทธ๋ž˜๋„ ์ฃผ์–ด์ง„ ์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด์„œ ์–ด๋–ป๊ฒŒ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š”์ง€ ๋งŽ์ด ๋ฐฐ์šด ๊ฒƒ ๊ฐ™๋‹ค..! train์„ ํ•œ ๋ฒˆ ํ•ด๋ดค์ง€๋งŒ ์„ฑ๋Šฅ์ด ๊ทธ๋ ‡๊ฒŒ ๋†’์€ ํŽธ์€ ์•„๋‹ˆ๋ผ์„œ ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ๋” ์ž˜ ํ•™์Šต์‹œํ‚ฌ ์ˆ˜ ์žˆ์„์ง€ ๊ณ ๋ฏผํ•ด๋ด์•ผ๊ฒ ๋‹ค...0-0

728x90
Comments