텐서플로우 설치(코랩에는 이미 설치돼있음)
수학 계산 위한 라이브러리들
텐서플로우 버전 확인 가능
show_sample() : 이미지, 레이블값 보내주면 샘플 25개를 matplotlib 이용해서 표현해라
케라스 데이터셋의 mnist에서 가져와서
훈련 이미지와 훈련 레이블(결과값), 텍스트 로드
다운로드 하면 데이터들은 0부터 255까지의 채도값으로 표현되어 있음
이것을 0과 1사이로 만들어 주기 위해 Normalize 수행 -> 255.0으로 나눠줌
각 셀의 색 나타내는 값으로 변환됨
옵션 더하면 더할수록 속도는 느려짐
3개의 레이어들 이용
Flatten 레이어 28X28 만들고
relu activation 이용해 Dense 레이어 만들고
Dense 레이어 만들어서 10개 -> 0부터 10까지 classify 하는 것이기 때문
정확도 좀 더 높이고 싶으면 주석 처리된 부분 풀어서 진행하면 됨
SparseCategoricalCrossentropy 사용
metrics 값은 정확도 넣어 측정
모델 학습
훈련 이미지, 레이블 값, epochs 5
epoch은 간단히 말하면 훑는 횟수?
이 프젝에서는 단순하게 5번 학습해 모델 완성
모델의 정확도 측정
학습은 위에서 훈련값으로 수행했고
그것과 전혀 다른 테스트 이미지와 레이블로 정확도 측정 수행
(313건의 테스트 값)
테스트 이미지 넣어서 제대로 결과가 출력되는지 확인
제대로 출력됨
모델 직접 convert
메모리상에 있는 케라스 모델을 TFLiteConverter 이용해서 convert한 모델로 만들어줌
파일 이름 지정해서 save
예외처리
이상없이 작동됨
storage에 저장되어있는 zero.png 가져와서
grayscale한 후 size도 28X28로 해주고(기존 데이터들과 동일한 크기 형태 가져야하기 때문)
Nomalize 해줌
텐서플로우 라이트에서 실행
텐서플로우에서 모델 예측한 값이 output에 담김
output 값은 배열 형태로 출력
0부터 9까지의 값 나온 것들을 numpy의 argmax 이용해서 가장 두드러진 값 출력
confidence가 4.몇이면 사십 몇 퍼센트니까 그렇게 높은 것 같진 않은데..?
아무튼 완료!
'CS > AI | CV' 카테고리의 다른 글
YOLOv5 in PyTorch - Train Custom Data #1 (0) | 2022.02.16 |
---|---|
Face Recognition - Progressive Web App 제작 (0) | 2021.10.30 |
Hybrid app 개발 Ionic (0) | 2021.10.21 |
실시간 얼굴 감정 인식 #3 (0) | 2021.10.05 |
실시간 얼굴 감정 인식 #2 (0) | 2021.10.05 |