DAY 10 : Cutmix
210901
์ปท๋ฏน์ค๋ฅผ ํ๋ฉด ์ฑ๋ฅ์ด ์ฆ๊ฐํ๋ค. ๋ชจ๋ ๋ก์คํจ์์ ๋ํด์ ์คํํด๋ณด์๋๋ ๋ชจ๋ ์ฑ๋ฅ์ด ์ค๋ฅด๋ ๋๋ผ์ด ๊ฒฐ๊ณผ๋ฅผ ๋ณด์๋ค.
๋ค์์ cutmix๋ฅผ ๊ตฌํํ๋ ์ฝ๋์ด๋ค.
if np.random.random() <= args.cutmix:
W = inputs.shape[2]
mix_ratio = np.random.beta(1, 1)
cut_W = np.int(W * mix_ratio)
bbx1 = np.random.randint(W - cut_W)
bbx2 = bbx1 + cut_W
rand_index = torch.randperm(len(inputs))
target_a = labels
target_b = labels[rand_index]
inputs[:, :, :, bbx1:bbx2] = inputs[rand_index, :, :, bbx1:bbx2]
outs = model(inputs)
loss = criterion(outs, target_a) * mix_ratio + criterion(outs, target_b) * (1. - mix_ratio)
1 : ์ธ์๋ก
args.cutmix
๋ฅผ ๋ฐ๋๋ค. 0์์ 1์ ๊ฐ์ ๊ฐ์ง๋ฉฐ ์ด ๊ฐ์ด ํด์๋ก cutmix๋ฅผ ์ ์ฉํ ๊ฐ๋ฅ์ฑ์ด ์ฆ๊ฐํ๋ค.3 : ๋ฒ ํ๋ถํฌ์์ ํน์ ์๋ฅผ ๋ฝ๋๋ค, ๋ ์ธ์์ ์๊ฐ ๊ฐ์ผ๋ฉด ๊ท ๋ฑ๋ถํฌ๋ก ํํํ ์ ์๋ค.

4 : cutmix๋ฅผ ์ ์ฉํ ๋น์จ์ ๊ฒฐ์ ํ๋ค๋ฉด ์ด๋ฅผ ๊ฐ์ง๊ณ ๊ฐ๋ก์ ๋ํด ์๋ฅผ ๋ถ๋ถ์ ๊ฒฐ์ ํ๋ค.
์ค์ ๋ก cutmix๋ ์์์ w์ h์ ์ด๋ฏธ์ง๋ฅผ ํฉ์น๋ ๊ฒ
์ฌ๊ธฐ์ ๋ฐ์ดํฐ์ ์ ์ด๋ฏธ์ง๋ฅผ ๋ณด๋ฉด ๋์ฒด๋ก ์ผ๊ตด์ด ์ค์์ ์๊ณ ๊ทธ ์ธ์๋ ๋ฒฝ๊ณผ, ์ท์ด ์๊ธฐ ๋๋ฌธ์ ์ฐ๋ฆฌ๋ ์ผ๊ตด ๋ฐ์ดํฐ์ ์ด์ ์ ๋ง์ถฐ์ผํ๋ค. ๋ํ, ์ผ๊ตด์ด ์์ด์ผ ํ ์์น์ ๋ฒฝ์ด๋ ์ท์ด ํฉ์ฑ๋๋ฉด ์๋๊ธฐ ๋๋ฌธ์ ์ธ๋ก๊ธธ์ด๋ ์ด๋ฏธ์ง ์ธ๋ก ๊ธธ์ด๋ก ๊ณ ์ ํ๊ณ ๊ฐ๋ก ๊ธธ์ด๋ง ๋ฐ๊พธ๊ธฐ๋ก ํ๋ค.
5-6 : cutmixํ ์ด๋ฏธ์ง์ ์์์ ๊ณผ ๋์
์ดํ, cutmix๋ฅผ ์ ์ฉํ๋ค.
Last updated
Was this helpful?