๐ ์ค๋ ํ ์ผ
- ๋ฐ์ผ๋ฆฌ ์คํฌ๋ผ
- ๊ฐ์ ์๊ฐ ๋ฐ ์ ๋ฆฌ
- [PyTorch 1๊ฐ]
- [PyTorch 2๊ฐ]
- [PyTorch 3๊ฐ]
- ํด์ฆ ํ๊ธฐ
- ๊ธฐ๋ณธ ๊ณผ์ 1 (ํ๋ ์ค)
- ํผ์ด์ธ์
- ์๊ณ ๋ฆฌ์ฆ ์คํฐ๋ ๋ฌธ์ ํ์ด
๐ฅ ํผ์ด์ธ์ ์์ฝ
์ค๋ ํผ์ด์ธ์
์์๋ ๊ฐ์ธ๋ณ ์ง๋๋ฅผ ํ์ธํ๊ณ , ๊ฐ์ ๋ฐ ๊ณผ์ ์์ ๊ถ๊ธํ ์ ์ ๋ํด ์ด์ผ๊ธฐ๋ฅผ ๋๋๊ณ , week01 ๊ณผ์ ์ ์ฝ๋ ๋ฆฌ๋ทฐ๋ฅผ ์งํํ์๋ค. ์ฐ์ , view
์ reshape
์ ์ฐจ์ด์ธ contiguity์ ๋ํด์ ๊ฐ์ฅ ์ด์ผ๊ธฐ ํ ์ ์ด ๋ง์๋ค. ๊ฐ์์์๋ view
๋ฅผ ์ฌ์ฉํ๋ผ๊ณ ํ์
จ์ง๋ง, ์ค์ ๋ก๋ view
๋ฅผ ์ฐ๋ค๋ณด๋ฉด ์๋ฌ๊ฐ ์์ฃผ ๋ฐ์ํ์ฌ reshape
์ ๋ ์์ฃผ ์ฌ์ฉํ๋ค๋ ํ์๋ถ๋ค์ด ๊ณ์
จ๋ค. ๋ฐ๋ผ์ ๊ต์๋๊ป์ view
๋ฅผ ์ฌ์ฉํ๋ผ๊ณ ํ์ ๊ฒ์ reshape
์์๋ ๋ช๋ช ๊ฒฝ์ฐ์ copy๊ฐ ๋ฐ์ํ์ฌ ๋ฉ๋ชจ๋ฆฌ ์ธก๋ฉด์์ ์ํด๊ฐ ๋ฐ์ํ ์๋ ์๊ธฐ ๋๋ฌธ์ผ ๊ฒ์ด๋ผ๊ณ ์ถ์ธกํ์๋ค. ๋ํ, ๋๋ PyTorch 2๊ฐ ๊ฐ์์์ ๋ฒกํฐ๋ก ์ด๋ฃจ์ด์ง ์์ backward
ํจ์์๋ gradient
๋ฅผ ์ ๋ช
์์ ์ผ๋ก ํ๋ผ๋ฏธํฐ๋ก ๋ฃ์ด์ฃผ๋์ง, ๊ทธ๋ฆฌ๊ณ ์ ๊ทธ tensor์ ๊ฐ์ [1., 1.]
์ธ์ง ๊ถ๊ธํ์๋๋ฐ, ์ฐ์ ์ computational graph์์ backprop์ ์งํํ ๋ ์ฒ์ input์ผ๋ก 1์ ๋ฃ์ด์ฃผ๋ ๊ฒ์ด ๊ด๋ จ์ด ์์ง ์์๊น๋ผ๊ณ ๊ฒฐ๋ก ์ ์ง์๋ค.
1
2
3
4
5
6
7
8
a = torch.tensor([2., 3.], requires_grad=True
b = torch.tensor([6., 4.], requires_grad=True
Q = 3*a**3 - b**2
external_grad = torch.tensor([1., 1.])
Q.backward(gradient=external_grad)
a.grad # tensor([36., 81.])
b.grad # tensor([-12., -8.])
๐ก PyTorch ํํ ๋ฆฌ์ผ
โQ
ย ๋ ๋ฒกํฐ(vector)์ด๋ฏ๋กยQ.backward()
ย ์ยgradient
ย ์ธ์(argument)๋ฅผ ๋ช ์์ ์ผ๋ก ์ ๋ฌํด์ผ ํฉ๋๋ค.ยgradient
ย ๋ยQ
ย ์ ๊ฐ์ ๋ชจ์(shape)์ ํ ์๋ก,ยQ
ย ์๊ธฐ ์์ ์ ๋ํ ๋ณํ๋(gradient)๋ฅผ ๋ํ๋ ๋๋ค. ์ฆ $\frac{dQ}{dQ} = 1$์ ๋๋ค.
๋ํ, ์ง๋์ฃผ ๊ณผ์ ์ ๋ํด ์ฝ๋๋ฆฌ๋ทฐ๋ฅผ ์งํํ์๋ค. ๋ ๊น๋ํ ํ์ด์ฌ ์ฝ๋๋ฅผ ์ํ ๋ฐฉ๋ฒ์ผ๋ก ๋ฆฌ์คํธ ์ปดํ๋ฆฌํจ์ , ์ผํญ ์ฐ์ฐ์, IDE๋ก ํ์ด์ฐธ ์ฌ์ฉํ๊ธฐ ๋ฑ์ด ์์๋ค.
๐ ๊ณผ์ ๋ด์ฉ ์ ๋ฆฌ
๊ธฐ๋ณธ ๊ณผ์ 1์ ์์ง ํธ๋ ์ค์ด๋ค.
๐พ ์ผ์ผ ํ๊ณ
์ด๋ฒ์ฃผ๋ PyTorch๋ฅผ ๋ฐฐ์ด๋ค. ํ๊ต ์์ ์๊ฐ์๋ (์์ฃผ ์ ๊น) TensorFlow๋ง ์จ๋ดค์๊ณ , PyTorch๋ ์กฐ๊ธ ๋ฐ๋ผํด ๋ณธ ์ ๋๋ก ๋ฐ์ ๊ฒฝํ์ด ์๋๋ฐ, ์ด๋ฒ ๊ธฐํ์ ๋ง์ด ์ต์ํด์ก์ผ๋ฉด ์ข๊ฒ ๋ค. ๊ทธ๋ฆฌ๊ณ ์ง๋์ฃผ์ ๋ค๋ฅด๊ฒ ์ด๋ฒ์๋ ๊ฐ์ ๋ถ๋์ด ์ ์ ํ ๊ฒ ๊ฐ์ ๋คํ์ด๋ค. (๋๋ถ์ ์ค์ต์ ๋ฐ๋ผ ํด๋ณด๋ ๋ฐ์ ๋ ๋ง์ด ํฌ์ํ ์ ์์๋ค.) ๋น๋ก ์ค๋์ ํ ๊นํ๋ธ์ ์๊ณ ๋ฆฌ์ฆ ์คํฐ๋ ์ ์ฅ์๋ฅผ ๋ง๋ ๋ค๊ณ ์๊ฐ์ ์๋๋ผ ํผ์ด์ธ์ ์ ๊น์ง ๊ณํ๋ ๋ถ๋์ ๋ค ํ์ง๋ ๋ชปํ์ง๋งโฆ ๐ฅ ๋ํ, ์ด๋ฒ์ฃผ๋ ๋ด๊ฐ ๋ชจ๋๋ ์ดํฐ๋ฅผ ๋งก์๋ค. ๋๋ ์ด๋ฐ ์ญํ ์ ๋งก์ ๋๋ง๋ค ๋ด ์์ ์ด ๋๋ฌด ๋ถ์กฑํ๊ฒ ๋๊ปด์ง๋ค. ๊ทธ๋๋ ์ต์ ์ ๋คํด์ผ๊ฒ ๋ค!
๐ ๋ด์ผ ํ ์ผ
- ๊ฐ์ ์๊ฐ & ์ ๋ฆฌ
- [PyTorch 4๊ฐ]
- [PyTorch 5๊ฐ]
- ํด์ฆ ํ๊ธฐ
- ๊ธฐ๋ณธ ๊ณผ์ 1 ๋ง๋ฌด๋ฆฌ
- ๊ธฐ๋ณธ ๊ณผ์ 2
- ์๊ณ ๋ฆฌ์ฆ ์คํฐ๋ ๋ฌธ์ ํ์ด
- git blog ์ ๋นํ๊ธฐ