인공지능

(tensorflow 신경망 분석)데이터 전처리

ri5 2021. 4. 10. 18:48
plt.figure(figsize=(10,10))
for i in range(25):
    plt.subplot(5,5,i+1)
    plt.xticks([])
    plt.yticks([])
    plt.grid(False)
    plt.imshow(train_images[i], cmap = plt.cm.binary)
    plt.xlabel(class_names[train_labels[i]])
plt.show()​
fashion_mnist = keras.datasets.fashion_mnist
(train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data()

keras.datasets.fashion_mnist

- keras에서 제공해주는 fashion_mnist라는 dataset(데이터 집합)을 가져옴

fashion_mnist.load_data

- Numpy 형태의 (x_train, y_train), (x_test, y_test) = (x_test, y_test), (x_test, y_test) 데이터를 불러옴.

  (1) x_train, y_train : 모양이 있는 회색조 이미지 데이터의 unit8 배열.(28x28 num_samples)

  (2) x_test, y_test: 모양이 있는 레이블(integers 0-9 사이) 배열

 

class_names = ['T-shirt/top', 'Trouser', 'Pullover', 'Dress', 'Coat', 'Sandal', 'Shirt', 'Sneaker','Bag', 'Ankle boot']

class_names

0~9 까지의 labels를 분류할 종류들을 저장할 배열.

 

train_images.shape
#out(60000, 28, 28)

train_images.shape

학습시킬 28x28크기의 이미지가 uint8형태의 배열로 60000개의 데이터가 있다

-shape: 배열안의 요소개수를 return 하는데 2차원 배열이면 2개의 요소, 3차원이면 3개의 요소를 리턴한다.

ex) (4, 3, 2) = [

                   [[1,0],[1,0],[1,0]],

                   [[1,0],[1,0],[1,0]],

                   [[1,0],[1,0],[1,0]],

                   [[1,0],[1,0],[1,0]],

                 ]

len(train_labels)
#out:60000

len(train_labels)

train_images안의 이미지의 label을 분류한 배열크기(0~9).

test_images.shape
#out(10000, 28, 28)

test_image.shape

테스트를 할 28x28크기의 이미지가 uint8형태의 배열로 10000개의 데이터가 있다.

len(test_labels)
#out: 10000

len(test_labels)

train_images안의 이미지의 label을 분류한 배열크기(0~9)

 

plt.figure()
plt.imshow(train_images[0])
plt.colorbar()
plt.grid(False)
plt.show()

plt.figure()

새 그림을 만들거나 기존 그림을 활성화 시킴

plt.imshow(train_images[0])

데이터를 2d 비트맵이미지의 형태로 display 함

plt.colorbar()

plot에 컬러바를 추가시킨다.

 

 

붉은색으로 표시해준 컬러바

plt.grid(False)

그리드선을 구성하지 않는다.

plt.show()

그려진 그림을 display

train_images = train_images / 255.0
test_images = test_images / 255.0

train_images = train_images / 255.0

훈련시킬 이미지들의 값 범위를 0~1 사이로 조정을 한다.

test_images = test_images / 255.0

테스트 할 이미지들의 값 범위를 0~1 사이로 조정을 한다.

 

plt.figure(figsize=(10,10))
for i in range(25):
    plt.subplot(5,5,i+1)
    plt.xticks([])
    plt.yticks([])
    plt.grid(False)
    plt.imshow(train_images[i], cmap = plt.cm.binary)
    plt.xlabel(class_names[train_labels[i]])
plt.show()

plt.figure(figsize=(10,10))

10x10인치 사이즈의 크기의 그림 생성

plt.subplot(5,5,i+1)

subplot(nrows, ncols, index) 5개의 컬럼과 5개의 로우가 그려진 plot에서 몇번째 index에 subplot을 생성할지 설정.

 

plt.xticks([])

plot의 x축을 가져와 xticks와 label을 설정.(빈 배열을 넣으면 xticks와 label을 모두 지움)

plt.yticks([])

plot의 y축을 가져와 yticks와 label을 설정.(빈 배열을 넣으면 yticks와 label을 모두 지움)

plt.grid(False)

그리드선을 구성하지 않는다.

plt.imshow(train_images[i], cmap = plt.cm.binary)

train_images의 i번째이미지를 color map은 binary 형태로 bitmap 형태로 display

binary

plt.xlabel(class_names[train_labels[i]])

x축의 label들을 설정한다.

plt.show()

plt.show() 했을때 보여지는 이미지