ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • PyTorch์™€ Numpy์—์„œ์˜ ์ด๋ฏธ์ง€ ๋ฐ์ดํ„ฐ ํฌ๋งท ์ฐจ์ด
    AI\ML\DL/Pytorch 2023. 8. 1. 21:43
    ๋ฐ˜์‘ํ˜•

    ์ผ๋ฐ˜์ ์œผ๋กœ ์ด๋ฏธ์ง€ ๋ฐ์ดํ„ฐ๋Š” ๋„ˆ๋น„, ๋†’์ด, ์ฑ„๋„ ์ˆœ์„œ๋กœ ํ‘œํ˜„๋˜๋Š” RGB ํฌ๋งท์„ ์‚ฌ์šฉํ•œ๋‹ค.

    ์˜ˆ๋ฅผ ๋“ค์–ด, 32x32 ํฌ๊ธฐ์˜ ์ปฌ๋Ÿฌ ์ด๋ฏธ์ง€์˜ ๊ฒฝ์šฐ (32,32,3) ์œผ๋กœ ํ‘œํ˜„๋˜๋ฉฐ, ๊ฐ ์ฐจ์›์€ ๊ฐ๊ฐ (ํ–‰, ์—ด, ์ฑ„๋„) ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค. 

    ์ด๋ฏธ์ง€๋ฅผ (ํ–‰,์—ด,์ฑ„) ํ˜•์‹์œผ๋กœ ์ฝ๊ณ  ์ฒ˜๋ฆฌํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

    • Numpy
    • OpenCV
    • Matplotlib (์ด๋ฏธ์ง€ ์ฒ˜๋ฆฌ๋Š” ์•„๋‹ˆ์ง€๋งŒ ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” ํ•  ๋•Œ)

     

    ์ด๋ฅผ ํ™•์ธํ•ด๋ณด๊ธฐ ์œ„ํ•ด numpy ๋กœ ๋žœ๋คํ•œ ์ •์ˆ˜๋ฅผ ์ƒ์„ฑํ•˜์—ฌ 3์ฑ„๋„ (RGB) ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด ๋ณด์•˜๋‹ค. 

    ์ƒ์„ฑํ•œ ์ด๋ฏธ์ง€ ๋ฐ์ดํ„ฐ์˜ shape์„ ํ™•์ธํ•˜๋ฉด (ํ–‰,์—ด,์ฑ„๋„) ์ˆœ์„œ๋กœ ์ถœ๋ ฅ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. 

    import numpy as np
    import matplotlib.pyplot as plt
    
    # ๊ฐ€์ƒ์˜ ์ด๋ฏธ์ง€ ๋ฐ์ดํ„ฐ ์ƒ์„ฑ (๋†’์ด: 4, ๋„ˆ๋น„: 4, ์ฑ„๋„: 3)
    a = 5
    b = 4
    c = 3
    image_data = np.random.randint(0, 256, (a, b, c), dtype=np.uint8)
    print(image_data.shape)
    
    # Matplotlib๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฏธ์ง€ ํ‘œ์‹œ
    plt.imshow(image_data)
    plt.axis('off')  # ์ถ• ์ œ๊ฑฐ
    plt.show()
    (5,4,3)

    ์ฝ”๋“œ ์ถœ๋ ฅ

     

    ๋ฐ˜๋ฉด PyTorch์˜ ํ…์„œ๋Š” ์ด๋ฏธ์ง€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์„ ๋•Œ (์ฑ„๋„, ํ–‰, ์—ด)๋กœ ์ฝ๋Š”๋‹ค. 

    Matplotlib์˜ imshow() ํ•จ์ˆ˜๋Š” ํ–‰, ์—ด, ์ฑ„๋„ ์ˆœ์„œ๋กœ ์ด๋ฏธ์ง€๋ฅผ ํ‘œ์‹œํ•˜๋ฏ€๋กœ PyTorch ํ…์„œ๋ฅผ ๊ทธ๋Œ€๋กœ imshow() ํ•จ์ˆ˜์— ์ „๋‹ฌํ•˜๋ฉด ์ด๋ฏธ์ง€ ๋ฐ์ดํ„ฐ๋ฅผ ์ธ์‹ํ•˜์ง€ ๋ชปํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋œฌ๋‹ค.

    "TypeError: Invalid shape (1, 3, 100, 150) for image data"

    import torch
    import matplotlib.pyplot as plt
    
    x_batch = torch.rand(1, 3, 100, 150)
    
    plt.imshow(x_batch)
    plt.imshow(x_batch[0].permute(1, 2, 0))
    plt.show()

    ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด, 'permute(1,2,0)'๋กœ ์ฐจ์›์„ ์กฐ์ •ํ•ด์ฃผ์–ด PyTorch ํ…์„œ๋ฅผ Matplotlib์— ์ ํ•ฉํ•œ ์ˆœ์„œ๋กœ ๋ณ€๊ฒฝํ•ด์ค˜์•ผ ํ•œ๋‹ค.

    import torch
    import matplotlib.pyplot as plt
    
    x_batch = torch.rand(1, 3, 4, 4)
    
    plt.imshow(x_batch[0].permute(1, 2, 0))
    plt.show()

    'AI\ML\DL > Pytorch' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

    torch.cat vs torch.stack  (0) 2023.09.29
    CNN ๋ชจ๋ธ์˜ classifier๋‹จ์—์„œ FC layer์˜ ์ž…๋ ฅ ๋…ธ๋“œ ๊ฐœ์ˆ˜  (0) 2023.08.03
    torch.utils.data.DataLoader  (0) 2023.07.25
    nn.Linear  (0) 2023.07.14
Designed by Tistory.