AI\ML\DL/Pytorch
-
5๏ธโฃ Pytorch ๊ธฐ์ด_autogradAI\ML\DL/Pytorch 2023. 7. 14. 17:08
1) requires_grad ํ ์ ๊ฐ์ฒด์ attribute ๋ก, ๊ทธ๋๋์ธํธ์ ๊ณ์ฐ ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ๋ค. requires_grad ์์ฑ์ True ๋ก ์ค์ ํ์ฌ ํ ์์ ๋ํ ๊ทธ๋๋์ธํธ ๊ณ์ฐ์ ํ์ฑํํ ์ ์๋ค. requres_grad ์์ฑ์ด False ๋ก ์ค์ ๋ ํ ์์ ๋ํด์๋ ๊ทธ๋๋์ธํธ๋ฅผ ๊ณ์ฐํ์ง ์๋๋ค. ์ด๋ฅผ ํตํด ๋ถํ์ํ ๊ณ์ฐ์ ์ค์ฌ ์ฐ์ฐ ์๋๋ฅผ ํฅ์์ํฌ ์ ์๋ค. 2) ์ญ์ ํ ๊ณ์ฐ x=torch.tensor([1.], requires_grad=True) y=x**2 y.retain_grad() z=3*y z.backward() print(x.grad) print(y.grad) x -> x**2 -> 3x**2 ์์ผ๋ก ์งํ๋๋ฏ๋ก x ์ ๋ํด์ 3x**2 ๋ฅผ chain rule์ ํตํด ํธ๋ฏธ๋ถํ๋ฉด ๊ฒฐ๊ณผ๋ 6..
-
4๏ธโฃ Pytorch ๊ธฐ์ด_์ฌ๋ฌ ํจ์๋คAI\ML\DL/Pytorch 2023. 7. 14. 12:32
๋๋ค ํจ์ 1. torch.randn: ๋๋คํ ์ซ์๋ค์ ํ๊ท ์ด 0, ๋ถ์ฐ์ด 1์ด๋๋๋ก normal distribution์ผ๋ก ๋ฐํ 2. torch.rand: 0๋ถํฐ 1์ฌ์ด ๋๋คํ ์ซ์๋ค์ uniform distribution ์ผ๋ก ๋ฐํ 3. torch.randint(1,5,size=(12,)): 1๋ถํฐ 5๋ฏธ๋ง 12๊ฐ ์ ์ ๋ชจ๋ ์ํ๋ ํ๋ ฌ ์ฌ์ด์ฆ๋ก ๋๋คํ ๊ฐ๋ค์ ์์ฑํ ์ ์๋ ํจ์์ด๋ค. print(A[A[:,0]
-
3๏ธโฃ Pytorch ๊ธฐ์ด_boolean ์ธ๋ฑ์ฑAI\ML\DL/Pytorch 2023. 7. 6. 21:43
1) Boolean ์ธ๋ฑ์ฑ torch์์ boolean ์ธ๋ฑ์ฑ์ ํ์ฉํ๋ฉด ๋์ค์ transformer ๋ง์คํน ๋ฑ์ ํ ๋ ๋งค์ฐ ์ ์ฉํ๊ฒ ์ฐ์ผ ์ ์๋ค๊ณ ํ๋ค. boolean์ ์ฌ์ฉํ๋ฉด True ์ธ ์ฑ๋ถ๋ง์ ๊ฐ์ ธ์์ ์๋ก์ด ํ๋ ฌ์ ๋ง๋ค ์๋ ์๋ค. A[B,:]: B์ ๊ฐ ์์์ ๋์ํ๋ ์์น์ ์๋ A์ ํ์ ์ ํํ์ฌ ์๋ก์ด ํ ์๋ฅผ ์์ฑํ๋ค. B์์ True ์ ํด๋นํ๋ ์์น์ ์๋ A์ ํ๋ค์ ์ ํํด์ ์๋ก์ด ํ ์๋ฅผ ๋ง๋ ๋ค. A=torch.tensor([[1,2],[3,4],[5,6],[7,8]]) print(A[ torch.tensor([[False,True],[False,False],[False,False],[False,False]]) ]) print(A[A==2]) print(A[ [True,Fal..
-
2๏ธโฃ Pytorch ๊ธฐ์ด_์ธ๋ฑ์ฑ๊ณผ ์ฌ๋ผ์ด์คAI\ML\DL/Pytorch 2023. 7. 6. 19:06
1) 1์ฐจ์ ํ๋ ฌ์ ๋ํ ์ธ๋ฑ์ฑ๊ณผ ์ฌ๋ผ์ด์ฑ ๊ธฐ๋ณธ์ ์ผ๋ก torch์ ์ธ๋ฑ์ฑ๊ณผ ์ฌ๋ผ์ด์ฑ์ ๋ฆฌ์คํธ์ ๋์ผํ๊ฒ ์งํ๋๋ค. ์ฐ์ a[ ] ๋ก a ์์ ๋๊ดํธ๋ฅผ ์ด์๋ค๋ ๊ฒ์ a๋ผ๋ ๋ณ์์ ๋ํด์ ์ธ๋ฑ์ฑ์ ํ ๊ฒ์์ ๋ปํ๋ค. ํ ์๊ฐ 1๋ถํฐ 9๊น์ง์ ์ฐ์์ ์ธ 1x9 ํ๋ ฌ์ด๋ผ๊ณ ํ ๋, ์ฒซ ๋ฒ์งธ๋ถํฐ ์์๋๋ก ์ธ๋ฑ์ฑ์ 0์์ ๋ง์ง๋ง๋ฒ์งธ 8 ์ด์ ๊น์ง๋ก ์ธ๋ฑ์ค๊ฐ ์ง์ ๋๋ค. (ํ์ด์ฌ์์ ์ฌ๋ผ์ด์ฑ์ ํ ๋, ์์ ์ธ๋ฑ์ค๋ ํฌํจ๋๊ณ ๋ ์ธ๋ฑ์ค๋ ํฌํจ๋์ง ์๋ ๋ฒ์๋ก ์ง์ ๋๋ค.) ๋ฐ๋ผ์ ์ธ๋ฑ์ค 7์ 8๋ฒ์งธ ์ซ์์ด๊ณ , ์ธ๋ฑ์ค 7๊น์ง ์ฌ๋ผ์ด์ฑ์ ํ๋ฉด 8๋ฒ์งธ ์ซ์ ์ ๊น์ง๊ฐ ์ถ๋ ฅ๋๋ค. 2) 2์ฐจ์ ํ๋ ฌ์ ๋ํ ์ธ๋ฑ์ฑ๊ณผ ์ฌ๋ผ์ด์ฑ A๋ 3x3 ํ๋ ฌ ํ๋๋ก ์ด๋ฃจ์ด์ง 2์ฐจ์ ํ ์ (ndim=2) A([0][2]): 0๋ฒ์งธ ํ์ 2๋ฒ์งธ ์์ A(..
-
1๏ธโฃ Pytorch ๊ธฐ์ด_numpy์ ๋ฎ์ torchAI\ML\DL/Pytorch 2023. 7. 6. 18:11
Pytorch๋ ๊ธฐ๋ณธ์ ์ผ๋ก Numpy ๋ชจ๋๊ณผ ์ฌ์ฉ๋ฒ์ด ๋งค์ฐ ๋ฎ์์๋ค. Numpy ์ ํจ์์ ๋์๋๋ pytorch ์ ํจ์๋ค์ด ๊ฝค ์๋๋ฐ ์๋ฅผ ๋ค๋ฉด np.array ๋ torch.tensor ์ ๊ฐ๋ค. ํ์ง๋ง ํฐ ์ฐจ์ด์ ์, ๋ฆฌ์คํธ๋ฅผ ์์ฑํ๋ numpy ์ ๋ฌ๋ฆฌ torch๋ ํ๋ ฌ์ ์์ฑํ๊ธฐ ๋๋ฌธ์ ๊ฐ ํ์ ํด๋นํ๋ ์ซ์์ ๊ฐ์๊ฐ ๊ฐ์์ผ ํ๋ค. ์์์ torch๋ 2ํ 3์ด ํฌ๊ธฐ์ ํ๋ ฌ์ ๋ง๋ค์๋ค. ์ด๋ torch๋ฅผ ์ฌ์ฉํด์ numpy์ฒ๋ผ torch.tensor([1,2],[3,4,5]) ์ ๊ฐ์ด ์ด๋ค๋ฉด ์ฒซ ๋ฒ์งธ ์ด์ 2๊ฐ์ ์์๋ฐ์ ์์ด์ ๋ ๋ฒ์งธ ์ด๊ณผ ํ ๊ฐ์๊ฐ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ์ค๋ฅ๊ฐ ๋๋ค. A.shape: ํ๋ ฌ(ํ ์)์ ํฌ๊ธฐ A.ndim: ํ ์์ ์ฐจ์์ ์ (๋ฐ๊นฅ์ ๋๊ดํธ ๊ฐ์) A.size(): ํ๋ ฌ(..