inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

딥러닝 CNN 완벽 가이드 - TFKeras 버전

ImageDataGenerator로 Augmentation 적용 - 01

data_generator.fit(image_batch)에서 fit의 의미

377

ecomarine

작성한 질문수 20

1

설명 중에 fit을 안해도 되는데

나중에 노멀라이제이션도 전체 데이터에 적용되어야하기 때문필요하다고 하던데  

잘 이해가 안되는데 fit이 뭔지 궁금합니다. 

kaggle tensorflow 머신러닝 배워볼래요? 딥러닝 keras cnn

답변 1

1

권 철민

안녕하십니까,

일반적으로 fit() 메소드는 model 학습시  호출합니다. 모델을 학습하실때 사용해 보셨겠지만, model.fit(ImageDataGenerator, ,,,, ) 와 같이 사용됩니다.   이렇게 fit()을 호출하면 ImageDataGenerator가 Batch size만큼 데이터를 입력받아서, augmentation과 기타 변환을 수행하여 모델에 입력 시켜서 학습을 하게 됩니다.

ImageDataGenerator도 fit()이라는 메소드를 가지고 있습니다. 이는 모델에서 사용하는 fit()하고는 성격이 다릅니다. 보통은 ImageDataGenerator의 fit()을 호출할 일이 없습니다.  모델의 fit()을 호출하면 next(ImageDataGenerator)와 같이 데이터가 batch size만큼  ImageDataGenerator로 자동으로 입력되고, 변환이 됩니다.

이게 보통의 augmentation 변환 로직인데, Normalization인 경우는 좀 사정이 다릅니다. 일반적으로 Normalization을 R, G, B 채널별 전체 데이터에 대해서 평균값, 표준 편차 값을 구한 뒤 Normalization을 수행하게 됩니다. 즉 Normalization의 경우 batch size만큼 순차적으로 데이터가 필요한게 아니라 전체 데이터가 필요하게 됩니다. 

따라서 이 경우는 ImageDataGenerator의 fit()을 호출해서 전체 데이터를 가공할 수 있어야 합니다. Normalization 변환을 ImageDataGenerator로 적용하려면 ImageDataGenerator의 fit()을 먼저 호출해 줘야 합니다. 이는 모델의 fit()하고는 상관이 없습니다.

감사합니다.

0

홍성민

안녕하세요 교수님.

교수님이 말씀하신것중에서 질문이 있습니다.

그러면 fit함수를 사용하면 전체데이터를 불러들이는것과 같은것일까요?

그것을 flow를 통해서 이미지를 가공하는것이 맞을까요?

 

제가 정리한 내용은 다음과 같습니다.

 

# 1.fit을 통해서 각 채널별로 평균과 표준편차를 구한것임.

# 2.data_generator를 통해서 위에서 계산한 평균과 표준편차를 통해 zscore변환한다.

# 3.next를 통해서 다음 배치를 반환한다.

resize 질문

0

50

1

20251212 Kaggle 런타임에 scikit-learn 설치 실패 트러블 슈팅

0

75

1

Loss와 매트릭 관계

0

61

2

Boston 코랩 실습

0

162

2

배치 정규화의 이해와 적용 2 강의 질문

0

134

2

Augmentation원본에 적용해서 데이터 갯수 자체를 늘리는 행위는 의미가있나요?

0

144

2

Conv함수 안에 activation 을 넣지 않는 이유가 뭔지 궁금합니다.

0

203

2

소프트맥스 관련 질문입니다

0

208

1

강의 관련 질문입니다

0

151

2

residual block과 identity block의 차이

0

185

2

옵티마이저와 경사하강법의 차이가 궁금합니다.

1

238

1

실습 환경

0

165

2

입력 이미지 크기

0

243

2

데이터 증강

0

195

2

albumentations ShiftScaleRotate

0

205

1

Model Input Size 관련

0

279

1

마지막에 bird -> frog 말고도 deer -> frog 도 잘못된것 아닌가요??

0

204

1

일반적인 질문 (kaggle notebook사용)

0

272

2

실무에서 Augmentation 적용 시

0

337

2

안녕하세요 교수님

0

231

1

가중치 초기화(Weight Initialization) 질문입니다.

0

327

1

테스트 데이터셋 predict의 'NoneType' object has no attribute 'shape' 오류

0

407

1

학습이 이상하게 됩니다.

2

1036

2

boston import가 안됩니다

0

228

1