티스토리 뷰

 

tensorflow.org/images/fashion-mnist-sprite.png?hl=ko

 

개요

이미지를 학습 시키려면 이미지가 필요합니다. 처음 튜터리얼을 할 때 사용하는 fashion-mnist 이미지를 다운로드 받아보겠습니다.

 

from tensorflow import keras

fashion_mnist = keras.datasets.fashion_mnist

(train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data()

위 코드를 실행하면 이미지를 다운로드 받고 파이썬에서 불러올 수 있는 상태가 됩니다.

 

로컬에 해당 이미지가 없다면 구글에서 다운로드를 받아줍니다.

 

다운로드 받아지는 위치는 윈도우의 경우

C:\Users\<사용자명>\.keras\datasets

입니다

 

이미지 중 한개 출력하기

import matplotlib.pyplot as plt
plt.figure()
plt.imshow(train_images[8])
plt.colorbar()
plt.grid(False)
plt.show()

위 코드는 앞에서 받은 train_images의 8번째 이미지를 출력하는 코드 입니다.

 

결과

결과 해석

이미지의 크기는 28*28이기 때문에 x축이 28까지 나옵니다. 표시는 25까지 되어 있는데 25 뒤로 3칸이 더 있는 것입니다.

 

그리고 각 픽셀 값이 0부터 255까지 인 것을 알 수 있습니다. 어떻게 알 수 있냐면 왼쪽에 있는 colorbar(색막대) 입니다.

 

0부터 250까지 표시 되어 있는데요 250보다 조금 더 칸이 보입니다.

 

위 이미지는 아래 배열을 출력한 이미지 입니다.

train_images[8]

위와 같이 n번째 이미지를 선택 해서 값들을 출력해볼 수 있습니다.

array([[  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
          0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 0,   0],
       [  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
          0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 0,   0],
       [  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   1,
          3,   1,   0,   0,   1,   1,   0,   0,   0,   0,  58,   0,  39, 1,   0],
       [  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   1,
          3,   0,   0,   0,   0,   0,   0,   0,  64, 109, 146, 192, 193, 7,   0],
       [  0,   0,   0,   0,   0,   0,   0,   0,   0,   1,   0,   0,   0,
          0,   0,   0,  94,  38,  99, 209, 183, 229, 192, 142,  48,   0, 0,   0],
       [  0,   0,   0,   0,   0,   0,   0,   0,   0,   1,   0,   0,   0,
          0,  41,  45, 158, 146, 164, 114,  51,   1,  53, 105,  42,  36, 0,   0],
       [  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,  10,
         68,  44,  30,  59, 172, 146,   0,  22,   0,  13, 103, 111, 103, 0,   0],
       [  0,   0,   0,   0,   0,   0,   0,   0,   0,   3,   1,   0,  22,
         61,  88, 152, 255,  71,   0,   0,   0,   0,  35,  85, 112, 201, 44,   0],
       [  0,   0,   0,   0,   0,   0,   0,   0,   0,   1,   0,   0,  13,
         62, 154,  62,   0,   0,   0,   0,   0,   0,  54,  99,  61, 106, 51,  19],
       [  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
          0,   0,   0,   9,   1,   0,   0,   1,   0,  79,  82,  47,  33, 58,  50],
       [  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
          3,   1,   3,   9,   3,   0,   0,   1,   0, 100,  88,  48,  35, 70,  54],
       [  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
          0,   0,   0,   0,   3,   0,   1,   0,   0, 111, 195, 119,  29, 58,  45],
       [  0,   0,   0,   0,   0,   0,   0,   1,   0,   0,   0,   0,   0,
          0,   0,   0,   0,   0,   3,   3,   0,   0,  91, 146, 171,  16, 93,  35],
       [  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
          0,   0,   0,   0,   0,   0,   0,   0,  48,  45,   3,  79,  87, 99,   6],
       [  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
          0,   0,   0,   0,   3,   0,   0, 119, 137,  33,  96,  77,  13, 45,   0],
       [  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
          0,   0,   0,   0,   0,  32, 160, 164, 142, 116,  79,  82,  39, 39,   0],
       [  0,   0,   0,   0,   3,   0,   0,   0,   0,   0,   0,   0,   0,
          3,   4,  10,   0,  41, 180, 142, 171,   1,   0,   0,  48,  73, 16,   0],
       [  0,   0,   0,   0,   0,   0,   1,   1,   0,   0,   0,   0,   0,
          0,   3,   0,  27, 155, 114, 169,   0,   0,   0,   0,  47,  76, 6,   0],
       [  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   1,
          0,   0,   0, 155, 129, 160,   0,   0,   0,   0,   0,  45,  96, 0,   0],
       [  0,   0,   0,   0,   1,   0,  16,  39,  64,   0,   0,   0,   0,
          0,   0, 129, 151, 175,   0,   0,   0,   4,   4,   0,  48, 116, 0,   0],
       [  0,   0,   0,   0,   0,   0,  58,  87,  73,  10,   0,   0,   0,
          0,  27, 187, 195,   0,   0,   0,   0,   3,   1,   0,  47, 146, 0,   0],
       [  1,   0,   0,   0,   1,   0,   0,   0,   0,   0,   0,   0,   0,
          0, 181, 225,  45,   0,   0,   0,   0,   0,   1,   0,  45, 186, 0,   0],
       [  0,   0,   0,   0,   0,   0,   1, 183, 210,  90,   0,   0,   0,
        126, 253, 142,   0,   0,   0,   0,   0,   0,   1,   0,  48, 203, 0,   0],
       [ 64,  58,  45,  27,  16,   9,   1, 175, 245, 204,  22,   0,  70,
        236, 190,   6,   0,   0,   0,   0,   0,   0,   0,   0,  50, 196, 0,   0],
       [ 96, 128, 149, 163, 158, 140, 138, 146, 154, 108,  90, 148, 193,
        177,  36,   0,   7,   0,   0,   0,   0,   0,   0,   0,  41, 125, 0,   0],
       [  0,   0,   0,   0,  19,  47,  65,  93,  94, 125, 166, 180, 119,
         29,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,  32, 238, 0,   0],
       [  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
          0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 131, 0,   0],
       [  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
          0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 0,   0]], dtype=uint8)

자세히 보시면 구두 모양이 보이시나요?

 

len(train_images[8])

train_images[8]은 [[], [], [] ...]와 같이 생긴 배열입니다. train_images[8]안에 []가 몇개인지 len으로 세어보면 28이라고 나옵니다.

 

 [  0,   0,   0,   0,   0,   0,   0,   0,   0,   1,   0,   0,   0,
          0,  41,  45, 158, 146, 164, 114,  51,   1,  53, 105,  42,  36,
          0,   0],

이미지 한개는 28 * 28사이즈 입니다. 그래서 위와 같이 한줄에는 28개의 값들이 들어있고 각 값들은 0부터 255사이의 값입니다.

 

엄밀히 말하면 이미지라기 보다는 이미지를 전처리 해서 배열로 바꿔놓은 것입니다.

 

 

728x90
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함