- Today
- Total
hye-log
[๋ถ์คํธ์บ ํ AI Tech]WEEK 06_DAY 27 ๋ณธ๋ฌธ
๐ฅ ๊ฐ๋ณํ์ต
[6] Model 2 - Pretrained Model
0. Overview
1) Computer Vision์์ ๋ฐ์ ์ผ๋ก Object Detection, Self-driving๊ณผ ๊ฐ์ ๊ธฐ์ ์ด ๋ฐ์ ํจ
2) Computer Vision์ ๋ฐ์ ์ ImageNet ์ด๋ผ๋ ๋์ฉ๋ ๋ฐ์ดํฐ์ ์ ์์ฒญ๋ ์ํฅ๋ ฅ์ด ์์์
1. Pretrained Model
1) ๋ฐฐ๊ฒฝ
- ๋งค๋ฒ ์ ๋ง์ ์ด๋ฏธ์ง๋ฅผ ํ์ตํ๋ ๊ฒ์ ๊น๋ค๋กญ๊ณ ๋นํจ์จ์
- ๋ฏธ๋ฆฌ ํ์ตํ ๋ชจ๋ธ์ ๋ฐํ์ผ๋ก ๋ชฉ์ ์ ๋ง๊ฒ ๋ค๋ฌ์ด์ ์ฌ์ฉ
2) torchvision.models๋ฅผ ์ด์ฉํ์ฌ ๋ชจ๋ธ ๊ตฌ์กฐ์ pretrained weight๋ฅผ ๋ค์ด๋ก๋ํ ์ ์์
2. Transfer Learning
1) CNN base ๋ชจ๋ธ ๊ตฌ์กฐ
- Input --> CNN Backbone + Classifier --> Output
2) Torchvision model ๊ตฌ์กฐ
import torchvision.models as models
resnet18 = models.resnet18(pretrained=True)
3) Ex) Imagenet Pretraining
- ImageNet Images --> CNN Backbone + Classifier --> 1000 class
- ์ค์ํ์ ์กด์ฌํ๋ ์ด๋ฏธ์ง๋ฅผ 1000๊ฐ์ class๋ก ๊ตฌ๋ถ
4) Pretraining ํ ๋ ์ค์ ํ๋ ๋ฌธ์ ์ ํ์ฌ ๋ฌธ์ ์์ ์ ์ฌ์ฑ์ ๊ณ ๋ ค
5) Case 1. ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ํ์ต ๋ฐ์ดํฐ๊ฐ ์ถฉ๋ถํ ๊ฒฝ์ฐ
- CNN backbone์ ์ญํ ์ input image์ feature๋ฅผ ์ถ์ถ
- Classfier์ ์ญํ ์ ์ถ์ถ๋ feature์ embedding์ ๊ฐ์ง๊ณ class๋ฅผ ์ ์ํจ
- task๊ฐ pretrained model๊ณผ ์ ์ฌํ ๊ฒฝ์ฐ backbone์ freeze ํ๊ณ classifier๋ง update
6) Case 2. ํ์ต ๋ฐ์ดํฐ๊ฐ ์ถฉ๋ถํ์ง ์์ ๊ฒฝ์ฐ
- task๊ฐ pretrained model๊ณผ ์ ์ฌํ ๊ฒฝ์ฐ backbone์ freezeํ๊ณ classifier๋ง update
[Python]TypeError: image must be numpy array type(Resnet)
โ ๏ธ ์๋ฌ ์ํฉ โ ํด๊ฒฐ ๋ฐฉ๋ฒ image๋ฅผ ๋ถ๋ฌ์ฌ ๋ np.array๋ก ๋ถ๋ฌ์ค๊ธฐ np.array(Image.open(image_path)) resnet ๋ชจ๋ธ์ ์ฌ์ฉํ์ฌ transform์ ์ ์ฉํ ๊ฒฝ์ฐ ์๋์ ๊ฐ์ด reutrn if self.transform: image = sel..
hye-log.tistory.com
๐ฅ ์ค๋์ ํ๊ณ
ํ github ์ฌ์ฉํ๋ค๊ฐ commit ๊ธฐ๋ก์ ๋ณด๋ ๋ด ์ปค๋ฐ + merge ์ปค๋ฐ์ด ๋์์ ์ ๋ก๋๋๊ธธ๋ ๋ฐ์ผ๋ฆฌ์คํฌ๋ผ ๋๋ ๋ค๋ฅธ ํ์๋ค์ repository๋ฅผ ์ด๋ป๊ฒ ์ ๋ฐ์ดํธ ํ๋์ง ๋ฌผ์ด๋ดค๋ค.. ์์ง๊น์ง baseline๊ณผ ๋ฐ๋ฉด๋ฐ๋ฉดํ ์ฌ์ด๋ผ์ ์ด๋ฒ ์ฃผ๊น์ง๋ ๊ฐ์ ํธํ ๋ฐฉ๋ฒ์ผ๋ก ์ํ๋ ์คํ์ ๋๋ ค๋ณด๊ธฐ๋ก ํ๋ค. (๊ทธ๋๋ด์ผ ์ค๋ ๋ด์ผ์...ใ ใ ) baseline 2์ฐจ ์ฝ๋๊ฐ ๊ณต๊ฐ๋์ด์ ์ดํด๋ณด๋๋ฐ ์ฌ์ค ์์ฒญ๋๊ฒ ๋ณํ ๊ฑด ์์ด์ ๋์ถฉ ์ฅ ๋ณด๊ณ ๋์ด๊ฐ๋ค. ์คํ ๋๋ฆฌ๋ ค๊ณ ์ฌ๋ฌ ๊ฐ์ง ์ฝ๋ ์ฐพ์๋ณด๊ณ , ๋ค๋ฅธ ํ์๋ค ์ฝ๋ ์ฐธ๊ณ ํด์ ์ ๊ทธ๋ ์ด๋ ํ๋ค! ์ค๋์ loss, optim, model ์์ฃผ๋ก ์คํํด๋ด! ํ๋ฃจ์ 2๋ฒ ๋ฐ์ ๊ธฐํ๊ฐ ์์ผ๋ ์ฌ๋ฌ ๋ฒ ์คํํด๋ณด๊ณ ์ ์คํ๊ฒ ์ ์ถํด๋ณด๋๊ฑธ๋ก +_+ ์คํ์๋ level 2๋ฅผ ์ํ ๊ฐ๋จํ ํ ๋ฏธํ ํด๋ณด์๋ค. ํผ์ด์ธ์ ๋์๋ ๊ฐ์ ์คํ ๋๋ ธ๋ ๋ด์ฉ๋ค ๊ณต์ ํ๊ณ baseline ์ผ๋ก ์ก์ optimizer์ model์ ๋ํด์ ์๋ ผํ๋ค. ํ์คํ Adam ๋ณด๋ค๋ AdamW๊ฐ ์ฑ๋ฅ์ด ์ ๋์ค๋๋ฐ ์ด๊ฑฐ ๋น์ฐํ ์ด์ ๋ ์์ด์ผ ํ ํ ๋ฐ.. ์คํ์ ํด๋ณด๋ ์ด ๋ฐ์ดํฐ์ ์ fit ํ ๊ฒ ์๋๊น...?? ํ์ต์ ํ๋ฉด์ ๋๋๊ฑด ํ์คํ train์ ํ ๋๋ loss๋ ๋ฎ๊ณ accuracy๋ ๋์์ ๊ต์ฅํ ํ์ต์ด ์ ๋๊ณ ์๋ค๊ณ ์๊ฐ๋๋๋ฐ, valid๋ test๋ก ์คํ์ ํด๋ณด๋ฉด ๊ทธ๋ ๊ฒ ์ฑ๋ฅ์ด ๋์์ง์ง๊ฐ ์์์ ์ข ๋ ์ผ๋ฐํ๋ฅผ ์์ผ์ผ ํ๋ค๋ ์๊ฐ์ด ๋ ๋ค.. ๋ด์ผ์ rubust ํ ํ์ต์ ์ง์คํด๋ณด๋๊ฑธ๋ก...!!!!
'Boostcourse > AI Tech 4๊ธฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ถ์คํธ์บ ํ AI Tech]WEEK 07_DAY 29 (0) | 2022.11.01 |
---|---|
[๋ถ์คํธ์บ ํ AI Tech]WEEK 06_DAY 28 (0) | 2022.10.28 |
[๋ถ์คํธ์บ ํ AI Tech]WEEK 06_DAY 26 (0) | 2022.10.27 |
[๋ถ์คํธ์บ ํ AI Tech]WEEK 06_DAY 25 (0) | 2022.10.25 |
[๋ถ์คํธ์บ ํ AI Tech]WEEK 06_DAY 24 (0) | 2022.10.25 |