아래 내용들은 제가 혼자 학습하면서 정리한 내용들입니다.
'부족한 내용' 혹은 '잘못된 내용'이 있을 수 있습니다.
댓글 남겨주시면 더욱 공부하고 수정하도록 하겠습니다.
감사합니다.
Keras를 이용해서 딥러닝 모델을 학습시킬 때 fit() 과 fit_generator() 두 가지 메소드를 사용하여 학습시킬 수 있다.
두 메소드의 차이가 무엇인지, 어떤 것을 사용해야 하는지 궁금해서 비교해보았다.
fit
fit()은 Scikit-learn의 fit 메소드와 유사하다. 입력으로 준 전체 데이터를 fit 메소드로 통과 시킨다. 그러므로 전체 데이터를 통과 시킬 수 있는 작은 크기의 dataset을 학습 시킬 때 사용한다.
fit_generator
fit_generator()는 x, y 데이터를 직접 통과시키지 않고, 파이썬의 generator를 통해서 데이터를 불러온다. 대용량의 데이터를 효율적으로 학습시키기 위한 것이라고 한다. Keras 공식 문서에서 보면, generator는 Multiprocessing을 진행할 때 데이터 중복을 막기 위해서 사용한다. 이 메소드는 CPU를 parallel하게 사용할 때 효율적이라고 한다.
그래서 무엇을 써야할까?
그렇다면 이 두가지 메소드 중에서 무엇을 써야할까? 어떤 상황에서 알맞게 사용할 수 있을까?
사실 고민할 필요가 없다. fit_generator를 사용해보면 바로 알 수 있다.
<ipython-input-38-f88a267caf10>:2: UserWarning: `Model.fit_generator` is deprecated and will be removed in a future version. Please use `Model.fit`, which supports generators.
history = model.fit_generator(train_generator,
fit_generator를 사용하면 위와 같은 경고가 나오는데, 내용은
추천되지 않음, 앞으로의 버전에서 삭제될 예정이며, ‘Model.fit’ 을 사용할 것을 권장
한다고 한다.
그러므로 고민하지말고 fit()을 쓰도록 하자!!
Reference
... 끝!!
'ML & DL > Deep Learning' 카테고리의 다른 글
[DL] Tensoflow.Keras ImageDataGenerator (0) | 2023.02.14 |
---|---|
[DL] PyTorch로 인공신경망(ANN) 구현하기 (0) | 2023.01.11 |
댓글