-
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([0,2]): 0๋ฒ์งธ ํ์ 2๋ฒ์งธ ์์, ์ด๊ฑด ๋ฆฌ์คํธ์์๋ ์๋๊ณ ํ ์์์๋ง ๋๋ค!
3) 3์ฐจ์ ํ๋ ฌ์ ๋ํ ์ธ๋ฑ์ฑ๊ณผ ์ฌ๋ผ์ด์ฑ
3x4 ํ๋ ฌ์ 2๊ฐ ๊ฐ์ง๊ณ ์๋ ํ ์ A A๋ 3x4 ํ๋ ฌ 2๊ฐ๋ก ์ด๋ฃจ์ด์ง 3์ฐจ์ ํ ์ (ndim=3)
A์ shape ์ (ํ๋ ฌ ๊ฐ์, ํ ํฌ๊ธฐ, ์ด ํฌ๊ธฐ) ์ด๋ค. ์ด๋ ํ๋ ฌ์ ๊ฐ์๋ฅผ ์ฑ๋ ๊ฐ์๋ผ๊ณ ๋ ํ๋ค.
์ด๋ ์ฑ๋ ๊ฐ์๋ ์ธ๋ฑ์ฑ์ฒ๋ผ 0,1 ๋ก ์ธ์ง ์๊ณ , ๊ฐ์๋ฅผ ์ธ๋ฏ์ด 2๊ฐ๋ก ๋ํ๋ธ๋ค.
ํ ์์ ์ฑ๋ ๊ฐ์๋ ๋๊ดํธ ๊ฐ์๋ก ์ ์ ์๋ ndim ๊ณผ ๋ค๋ฅด๊ณ , 2์ฐจ์ ํ๋ ฌ(ํx์ด)์ ๊ฐ์๋ฅผ ๋งํ๋ค.
- print(A[0,1,2]): 0๋ฒ์งธ ์ฑ๋์ index 1ํ, index 2ํ
ํ ์์ Shape
๋ค์์ ์๋ก์ด ํ ์๋ฅผ ๋ง๋ค์ด๋ณด๊ณ shape์ ๋ณธ ์ฝ๋์ด๋ค.
๋๊ดํธ ๊ฐ์ (ndim) ์ ํ ์์ shape ์ ๊ฒฐ์ ํ๋ค.
์๋ฅผ ๋ค์ด, ๋๊ดํธ ๊ฐ์๊ฐ 2๊ฐ๋ผ๋ฉด 2์ฐจ์ ํ๋ ฌ์ด๋ shape ์ด (ํ, ์ด) ์ด๊ณ ,
๋๊ดํธ ๊ฐ์๊ฐ 3๊ฐ๋ผ๋ฉด 3์ฐจ์ ํ๋ ฌ์ด๋, shape ์ (์ฑ๋ ๊ฐ์, ํ, ์ด) ์ด๊ณ ,
๋๊ดํธ ๊ฐ์๊ฐ 4๊ฐ์ด๋ฉด 4์ฐจ์ ํ๋ ฌ์ด๋, shape ์ (๋ฐฐ์น ์ฌ์ด์ฆ, ์ฑ๋ ๊ฐ์, ํ, ์ด) ์ด๋ค.
์ด๋ ๋ฐฐ์น ํฌ๊ธฐ๋ 3์ฐจ์ ํ๋ ฌ์ ๊ฐ์์ด๋ค.
4) ํ ์๋ก ์ธ๋ฑ์ฑ
๋ฆฌ์คํธ์์๋ ์ธ๋ฑ์ฑ์ ํ์ฉํด์ ์ฑ๋ถ์ ๊ฐ์ ธ์์ ํ๋ ฌ์ ๋ง๋๋ ๊ฒ์ด ๋ถ๊ฐ๋ฅํ๋ค.
torch๋ฅผ ์ด์ฉํ๋ฉด ํ ์์ธ a๋ฅผ ์ธ๋ฑ์ฑํ์ฌ ์๋ก์ด ํ๋ ฌ A๋ฅผ ๊ฐํธํ๊ฒ ๋ง๋ค ์ ์๋ค.
์ด๋ ๋ฆฌ์คํธ์์๋ ํ ์๊ฐ ์๊ณ , ํ ์๋ง์ด ๊ฐ์ง๋ ์ฑ์ง์ด๋ค.
์๋ฅผ ๋ค์ด, list ์ธ a=[1,2,3] ์์ a[ [1,1,1,1,2,2,2] ] ์ ๊ฐ์ด ์ธ๋ฑ์ฑ์ผ๋ก ์ฑ๋ถ์ ๊ฐ์ ธ์์ ํ๋ ฌ์ ๋ง๋๋ ค๊ณ ํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ์๋ฌ๊ฐ ๋๋ค.
TypeError: list indices must be integers or slices, not list TypeError: list indices must be integers or slices, not list
์ค๋ฅ๋ ๋ฆฌ์คํธ์ ์ธ๋ฑ์ค๋ก๋ ์ ์ ๋๋ ์ฌ๋ผ์ด์ฑ์ ์ฌ์ฉํด์ผ ํ๋ค๋ ์ค๋ฅ์ด๋ค.
์ด์ ๋ฌ๋ฆฌ ํ ์๋ ์ ์๋ ์ฌ๋ผ์ด์ค๊ฐ ์๋ ํ๋ ฌ์ ์ธ๋ฑ์ค๋ก ์ฌ์ฉํด์ ์๋ก์ด ํ๋ ฌ์ ๊ฐํธํ๊ฒ ๋ง๋ค ์๊ฐ ์๋ค.
a=torch.tensor([[1,2,3],[4,5,6]]) A=a[ torch.tensor([[0,1],[1,1]]) ]
์ด ๋ถ๋ถ์์ A๋ ์ธ๋ฑ์ฑ์ ํ ๋ ํ๋ ฌ์ ๋ฃ์ด์ 2์ฐจ์ (2,3) shape์ ๊ฐ์ง a ํ ์์์ ์ํ๋ ํ์ ๊ฐ์ ธ์์ ๋ค์๊ณผ ๊ฐ์ 3์ฐจ์ (2,2,3) shape ํ ์๋ฅผ ํ์ฑํ๋ค.
tensor([[[1, 2, 3], [4, 5, 6]], [[4, 5, 6], [4, 5, 6]]])
'AI\ML\DL > Pytorch' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
5๏ธโฃ Pytorch ๊ธฐ์ด_autograd (0) 2023.07.14 4๏ธโฃ Pytorch ๊ธฐ์ด_์ฌ๋ฌ ํจ์๋ค (0) 2023.07.14 3๏ธโฃ Pytorch ๊ธฐ์ด_boolean ์ธ๋ฑ์ฑ (0) 2023.07.06 1๏ธโฃ Pytorch ๊ธฐ์ด_numpy์ ๋ฎ์ torch (0) 2023.07.06