2024. 6. 16. 23:04ㆍ공부 정리
Tf에 공개되어 있는 코드를 뜯어 본다. tf 사이트가 정말 잘되어있는게 순서대로 따라가기 좋고 다음에 무엇을 하면 좋은지도 알려준다.
https://www.tensorflow.org/tutorials/images/classification?hl=ko
전 단계의 코드와 다른 점:
- PIL
- seed와 이미지사이즈도 데이터셋 지정할 때 넣어준 점
- prefetch
- augmentation 추가
- sequential([사전모델 변수, 뒤는 그대로-])식으로 모델 레이어를 쌓는다.
- Tf.lite를 써서 모델을 저장하고 불러와 예측. 이전 모델과 측정값 비교.
Tf:
불러오기 > 갯수 체크 > PIL로 이미지 테스트 > 변수 지정 > 학습과 검사로 분리 > 클래스 정보 확인 > 데이터 시각화로 확인 > 각각 이미지 형태, 라벨 길이 확인 > 프리페칭 > 표준화층 생성 > 표준화 > 모델 생성 > 컴파일 > 요약 > 학습 > 시각화 > 데이터 증강 > 데이터 시각화로 증강 확인 > 모델층 추가 > 컴파일 > 요약 > 재학습 > 시각화 > 새로운 데이터 가져와 예측 > 케라스모델을 tf.lite모델로 변환 > 모델 저장 > 불러오기 > 키 역할인 시그니쳐를 통해 모델 불러오기 > 해당 모델로 예측 > 소프트맥스층을 통해 결과인 정확도 도출
* PIL = Python Image Library, cv2와 비슷한 일을 한다. 출력 형태와 쓰임새는 조금 다르다.
* cache().prefetch(buffer_size=AUTOTUNE) : 성능향상을 위해 데이터를 로컬 스토리지(or 메모리)에 임시로 저장해둔다. 또한 에포크마다 미리 대기하는 prefetching기능을 사용한다.
* augmentation을 tf.keras.layers.preprocessing.RandomFlip을 쓰지 않고 tf.keras.RandomFlip식으로 씀. preprocessing 앞에 experimental은 없어도 잘 된다. sof에서는 전자를 더 쓰라고 하는데 최신코드 모두 후자로 되어있다.
* sequential로 모델을 재생성할 때 증강레이어를 추가할 수 있다. 이 경우 데이터의 변형 없이 그대로 모델을 통과시키면서 모든 이미지에 랜덤이펙트를 적용시킨다. 층 추가의 경우 보통 오브젝트 형태처럼 sequential로 감싼 것을 또 감싸는 형태라 뎁스가 올라갈거라 생각했는데, 이 경우엔 층부분만 똑똑하게 가져간다.
https://www.tensorflow.org/guide/keras/sequential_model?hl=ko
* tf.lite로 모바일 배포 및 최적화를 할 수 있다고 한다. 여기서는 저장과 불러와서 재사용하기까지만 한다.
'공부 정리' 카테고리의 다른 글
바이오 통계학 w/R (1) | 2024.10.02 |
---|---|
Udemy: Cv in python for beginners 정리 (0) | 2024.09.28 |
5. Transfer learning based on MobileNet w/ cats-and-dogs-data (1) | 2024.06.30 |
2. tf 사이트에 공개된 mnist 분석 (0) | 2024.05.18 |
git 이해하기 위한 정리 (0) | 2022.08.30 |