ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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]]])

     

Designed by Tistory.