오늘 학습내용은 거의 실습 위주로 진행해서 이론내용은 많지 않았습니다! 특히 사전 학습은 같은 경우는 앞서 프로젝트에서 한번 해봤기 때문에 나름 익숙했습니다.
*ImageDataGenerator
ImageDataGenerator가 필요한 이유는 CPU,MEMORY,GRU의 자원을 고려해야 하기 때문입니다. 입력될 이미지의 사이즈가 크고 양이 많다면 한번에 메모리에 올리지 못합니다. 올린다 해도 CPU가 처리를 못하게 됩니다. GPU도 마찬가지입니다. GPU에서는 수~많은 파라미터가 연산이 진행되기 때문에 한계가 존재합니다. 따라서 batch_Size만큼만 이미지를 가져와서 전처리하고 학습하는 과정이 필요하게 됩니다. 이 필요성을 해결해주는 도구가 바로 ImageDataGenerator입니다.
위 그림은 지난 시간에 포스팅된 이미지 중 하나입니다. ImageDataGenerator의 흐름을 나타낸 것입니다. flow() 같은 경우는 array로 된 Image를 "직접" 받을때 사용됩니다. flow_from_directory()는 형식화된? 정해진 어떠한 디렉토리 구조가 있는데 이를 flow_from_directory가 알아서 캐치하여 전처리를 하게 됩니다.
실습 내용 중 일부분입니다. directory에 경로를 넣으면 알아서 전처리를 진행합니다. 주의 할 점은 위 실습 코드처럼 적고 enter만 친다고 해서 전처리가 진행되지 않습니다. 단지 "대기중"일 뿐입니다. Model에서 fit() or fit_generator()를 호출하게 되면 실질적으로 전처리가 batch_Size 만큼 진행됩니다.
flow_from_dataframe()은 주로 메타정보를 dataframe로 만든 것을 받습니다.
아래는 실습 내용입니다
2021.10.05 - [실습 note] - CNN_Fundamental 실습 모음
'Data Diary' 카테고리의 다른 글
2021-10-15(CNN_Augmentation) (0) | 2021.10.15 |
---|---|
2021-10-14(따릉이 프로젝트 완성하기 12) (0) | 2021.10.15 |
2021-10-08(CNN_Global AG, 가중치 규제, Augmentation) (0) | 2021.10.08 |
2021-10-07(CNN_배치정규화 &따릉이 12) (0) | 2021.10.08 |
2021-10-6(따릉이 프로젝트 완성하기 11) (0) | 2021.10.06 |