Pytorch로 시작하는 딥러닝 입문(06-07. 다층 퍼셉트론으로 손글씨 분류하기)

2024. 3. 14. 22:45딥러닝 모델: 파이토치

♣ 숫자 필기 데이터 

숫자 필기 데이터는 0부터 9까지의 숫자를 손으로 쓴 이미지 데이터로, load_digits( ) 명령으로 로드할 수 있다. 

각 이미지는 0부터 15까지의 명암을 가지는 8×8=64 픽셀 해상도의 흑백 이미지이다. 

 

첫 번째 샘플을 출력해보자. .images[인덱스]를 사용하면 해당 인덱스의 이미지를 행렬로써 출력할 수 있다. 

 

첫 번째 샘플이 8 × 8 행렬로 출력된 것을 볼 수 있다. 0을 흰색 도화지, 0보다 큰 숫자들을 검은색 점이라고 상상하면 숫자 0의 실루엣처럼 보인다. 실제로 레이블도 숫자 0인지 첫 번째 샘플의 레이블을 확인해보자.

첫 번째 샘플의 레이블은 0인 것을 확인할 수 있다. 이런 샘플이 몇 개 있는지 확인해보자. 

 

전체 샘플의 수는 1,797개이다. 전체 샘플 중 상위 5개만 시각화해보자.

 

상위 5개의 샘플을 시각화하면 순서대로 숫자 0, 1, 2, 3, 4의 손글씨인 것으로 보인다. 

 

상위 5개 샘플의 레이블을 확인해보자. 

 

이제 훈련 데이터와 레이블을 각각 X, Y에 저장해보자. digits.images는 모든 샘플을 8×8 행렬로 저장하고 있다. 더 나은 방법은 digits.data를 사용하는 것이다.  이는 8×8 행렬을 전부 64차원의 벡터로 변환해서 저장한 상태이다. digits.data를 이용해서 첫 번째 샘플을 출력해보자. 

 

결과를 보면 8×8 행렬이 아니라 64차원의 벡터로 저장된 것을 볼 수 있다. 이를 X로 저장하고, 레이블을 Y에 저장한다. 

 

 

 

♣ 다층 퍼셉트론 분류기 만들기