학교/인공지능

18번째 수업(0522)

공부 기록장 2024. 5. 22. 15:46

데이터셋 - 표준/개발용( ex. iris data)

 

MNIST : 0~9 의 숫자를 필기체로 저장해놓은 것

 

MNIST 는 총 4개의 파일로 구성되어 있다.

 

학습용(6만개)

 

평가용( t 는 test, 10 k = 10000을 뜻함)

 

 

 

위에서 image 는 그림을 뜻하고 label 은 클래스(숫자)를 뜻한다.

 

idx3, idx1 에서 1은 1byte 를 , 3은 3byte 를 뜻한다.

mnist 데이터셋에서

1번째 : 매직넘버(4 byte)

2번째 : 이미지 개수(4  byte)

3번째 : 이미지 행수(4 byte, 28행) 

4번째 : 이미지 열수(4 byte, 28열)

위 그림에서 총 byte 용량은 

9,912,422 bytes 는 압축되기 전 47,040,016 bytes 이고

구성은   4 + 4 + 4 + 4 + (784 x 60000 x 1) 로 총 47,040,016 바이트로 구성된다.

 

 

 

INDIM, H1DIM, H2DIM, OUT  일 때 w1, w2, w3 총 3개의 층으로 되어있다.

 

 

 

print(x.shape)

print(yt.shpae)의 출력 결과

torch.Size([12, 26])
torch.Size([12, 4])

 

→ 26개로 이루어진 픽셀의 데이터가 12개

    입력 디멘션 12개, 클래스가 4개  라는 의미

 

weight 를 정하는 부분 w = torch.randn(IMDIM ...)

바이어스 4개 생성하는 부분 b = torch.randn(OUTDIM ...)

 

에러 계산하는 부분 floss = nn.MSELoss()

 

최적화 함수 optimizer = optim.SGD(...)

 

네트워크, 로스, 최적화 이 3개는 무조건 정의해야함

 

loss = floss(z, yt)

loss.backward() 

→ loss 에 에러를 구하고 역전파를 구한다.

 


 

과제 - 내일까지 4개의 파일 중 하나의 파일을 입력받고 6543 입력하면 6543번째 숫자 이미지, 클래스를 출력시키기

(파일의 뷰어 만들기)

(파이썬에 matplot 를 import 한 다음에 image show 라는 라이브러리를 이용하면 디스플레이에 그림 출력)

 

ex) 선택할 파일 : train-images-idx3-ubyte.gz

       선택할 이미지 : 6543

       출력 결과 : 숫자 이미지, 클래스값