본문 바로가기
인공지능

CNN 코드 분석 1

by Falto 2021. 8. 17.

앞서 보았던 코드를 하나하나 분석해 보자.

먼저 손글씨 데이타를 읽어 들이는 부분.


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

댓글