인프런 커뮤니티 질문&답변

김진혁님의 프로필 이미지
김진혁

작성한 질문수

딥러닝 CNN 완벽 가이드 - Fundamental 편

AlextNet 모델로 CIFAR10 학습 및 성능 테스트 강의 질문

작성

·

212

0

강의 마지막 부분에 flow() 는 넘파이 어레이를 처리할 때 , flow_from_dataframe() 은 시퀀스 데이터를 처리 할때 사용하고 target_size를 원하는대로 바꿀 수 있도록 인자로 들어가있다고 하셨고

앞 강의에서는 flow() 함수를 사용하려면 먼저 타겟 사이즈를 고정하고 그 사이즈에 맞게 데이터가 들어와야 한다고 하셨는데

 

만약 넘파이 어레이로 된 데이터가 사이즈가 다 다르면 데이터의 사이즈를 어떤 방법으로 변경 할 수 있을까요?  단순하게 넘파이의 resize 같은 함수를 사용하는것은 아닐 것 같은데 이부분에 대해 잘 알고 싶습니다. 각기 다른 사이즈의 넘파이 어레이를 어떻게 처리하여 트레이닝을 시작하는지.

 

감사합니다.

답변 3

0

권 철민님의 프로필 이미지
권 철민
지식공유자

나중 강의에서도 말씀을 드리겠지만 일반적으로 opencv의 resize()와 같은 함수를 이용하여 개별 image를 하나씩 다 동일한 size의 array로 변환합니다. 

0

김진혁님의 프로필 이미지
김진혁
질문자

감사합니다.

넘파이 어레이를 줄이기 위한 resize()는 flow_from_dataframe() 에만 인자로 있는것 아닌가요?

 그냥 flow()를 이용할때는 어떤 방법으로 resize()를 활용 할 수 있는지 알 수 있을까요? 케라스에 이런 함수가 있는것인가요?

그냥 넘파이의 reshape 같은것을 활용하면 축소시킬때는 문제가 있을 것 같은데요

0

권 철민님의 프로필 이미지
권 철민
지식공유자

안녕하십니까, 

원본 image size는 개별적으로 다를 수 있겠지만, Deep learning network에 입력될때는 모두 다 고정된 사이즈를 가져야 합니다. 이를 위해서 image를 고정된 사이즈로 모두 resize()해야 합니다. 

입력하는 이미지 사이즈가 다르면 numpy array를 고정된 사이즈로 먼저 변경하여 train및 test data numpy image array를 만든 후에 ImageDataGenerator의 flow()를 호출해 줘야 합니다. 

감사합니다. 

김진혁님의 프로필 이미지
김진혁

작성한 질문수

질문하기