[TensorFlow 2.0] 예제 데이터셋 (MNIST) 사용IT/AI2022. 9. 7. 09:29
Table of Contents
반응형
Load Packages
import numpy as np
import matplotlib.pyplot as plt
import tensorflow as tf
%matplotlib inline
데이터 불러오기
TensorFlow에서 제공해주는 데이터셋(MNIST) 예제 불러오기 입니다.
from tensorflow.keras import datasets
mnist = datasets.mnist
(train_x, train_y), (test_x, test_y) = mnist.load_data()
train_x.shape
# Out
(60000, 28, 28)
Image Dataset 들여다보기
불러온 데이터셋에서 이미지 데이터 하나만 뽑아서 시각화합니다.
데이터 하나만 뽑기
image = train_x[0]
image.shape
# Out
(28, 28)
시각화 하기
plt.imshow(image, 'gray')
plt.show()
Channel 관련
[Batch Size, Height, Width, Channel]
Gray Scale이면 1, RGB이면 3으로 만들어줘야 합니다.
데이터 차원수 늘리기(numpy)
# -1 인 경우 마지막에 차원을 늘린다는 의미입니다.
train_x = np.expand_dims(train_x, -1)
train_x.shape
# Out
(60000, 28, 28, 1)
데이터 차원수 늘리기 (tensorflow)
new_train_x = tf.expand_dims(train_x, -1)
new_train_x.shape
# Out
TensorShape([60000, 28, 28, 1])
TensorFlow 공식홈페이지에 나온 방법입니다.
new_train_x =train_x[..., tf.newaxis]
new_train_x.shape
# Out
(60000, 28, 28, 1)
다시 시각화 하기
주의사항: matplotlib로 이미지 시각화 할 때 gray scale의 이미지는 3번째 dimension이 없으므로, 2개의 dimension으로 차원 조절해서 넣어줘야 합니다.
display = new_train_x[0, :, :, 0]
or
display = np.squeeze(new_train_x[0])
display.shape
# Out
(28, 28)
plt.imshow(display, 'gray')
plt.show()
Label Dataset 들여다보기
Label 하나를 열어서 Image와 비교하여 제대로 들어갔는지, 어떤 식으로 저장 되어 있는지 확인합니다.
Label 하나만 뽑아보기
train_y[0]
# Out
5
Lebel 시각화 하기
plt.title(train_y[0])
plt.imshow(train_x[0], 'gray')
plt.show()
OneHot Encoding
컴퓨터가 이해할 수 있는 형태로 변환해서 Label을 주도록 합니다.
# 1
[0, 1, 0, 0, 0, 0, 0, 0, 0, 0]
# 5
[0, 0, 0, 0, 0, 1, 0, 0, 0, 0]
# 9
[0, 0, 0, 0, 0, 0, 0, 0, 0, 1]
1을 예시로 one hot encoding 하기
from tensorflow.keras.utils import to_categorical
to_categorical(1, 10)
# Out
array([0., 1., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32)
Label 확인해서 to_categorical 사용
label = train_y[0]
label_onehot = to_categorical(label, num_classes=10)
# Out
array([0., 0., 0., 0., 0., 1., 0., 0., 0., 0.], dtype=float32)
one hot encoding으로 바꾼 것과 이미지 확인
plt.title(label_onehot)
plt.imshow(train_x[0], 'gray')
plt.show()
반응형
'IT > AI' 카테고리의 다른 글
[TensorFlow 2.0] Optimizer 및 Training (Keras) (0) | 2022.09.08 |
---|---|
[TensorFlow 2.0] 각 Layer별 역할 및 파라미터 (0) | 2022.09.07 |
[Tensorflow 2.0] 기초 사용법 (0) | 2022.09.06 |
Tensorflow 2.0과 PyTorch 소개 (0) | 2022.09.06 |
인공지능 개발준비 - 개발환경 구축(Windows) (0) | 2022.09.04 |
@고지니어스 :: 규니의 개발 블로그
IT 기술과 개발 내용을 포스팅하는 블로그
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!