앞서 보았던 코드를 하나하나 분석해 보자.
먼저 손글씨 데이타를 읽어 들이는 부분.
from deep.dataset.mnist import load_mnist
def img_show(img):
pil_img = Image.fromarray(np.uint8(img))
pil_img.show()
# 데이터 읽기
(x_train, t_train), (x_test, t_test) = load_mnist(flatten=False, normalize=False)
# 데이타 확인
img = x_train[10] # <-- 요기 숫자를 바꿔가면서 손글씨 데이타의 실제 모양을 볼 수 있다.
label = t_train[10]
print(f"label is {label}")
print(img.shape) # (1, 28, 28)
img = img.reshape(28,28)
print(img.shape) # (28,28)
img_show(img)
손글씨 모양을 보려면, 반드시
load_mnist(flatten=False, normalize=False)
normalize를 False로 셋팅해야 한다.
load_mnise 인수에 대한 설명은 아래와 같다.
요약하자면,
* normalize = True -> pixel 값을 0 ~1 로 정규화. Flasesms 0~255. 실제 화면으로 보려면 이걸 택해야 함.
* flatten = True -> 1차원배열로 정리. False -> 1x28x28 3차원 배열로 정리
* one_hot__label = True -> [0, 1, 0,0,0, ...0] 방식. False는 [3], [7]과 같은 방식으로 손글씨 카드가 무슨 숫자인지 알려줌.
'인공지능' 카테고리의 다른 글
훈련시킨 후 테스트 해보기 (0) | 2021.08.22 |
---|---|
인공지능 '층' 용어정리 (0) | 2021.08.20 |
7.5 CNN 구현하기 (코드 짜기) (0) | 2021.08.14 |
7.5 CNN 구현하기 (0) | 2021.08.13 |
7.4.4 풀링 계층 구현하기 (0) | 2021.08.12 |
댓글