본문 바로가기
ML & DL/Deep Learning

[DL] Keras fit vs fit_generator

by 홍월이_ 2023. 2. 14.

아래 내용들은 제가 혼자 학습하면서 정리한 내용들입니다.

'부족한 내용' 혹은 '잘못된 내용'이 있을 수 있습니다.

댓글 남겨주시면 더욱 공부하고 수정하도록 하겠습니다.

감사합니다.


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

 

Model (functional API) - Keras Documentation

Model class API In the functional API, given an input tensor and output tensor, you can instantiate a Model via: from keras.models import Model from keras.layers import Input, Dense a = Input(shape=(32,)) b = Dense(32)(a) model = Model(input=a, output=b) T

faroit.com

 

 

What is the difference between fit() and fit_generator() in Keras?

What is the difference between fit() and fit_generator() in Keras? When should I use fit() vs fit_generator()?

datascience.stackexchange.com

 

 

Keras에서 fit() and fit_generator()

* Keras에서 학습을 시킬 때 fit()과 fit_generator()의 차이점 - fit()은 sklearn의 fit method와 비슷하...

blog.naver.com

 

 

[keras] fit vs fit_generator

keras에서 모델을 설계하고 학습(fitting)할 때 사용하는 메소드가 fit과 fit_generator가 있습니다. 두개가 다른 것은 아나 어떤 차이인지 정확히 몰라 구글에 검색을 해보니 이미 쉽게 정리해둔 글이

shelling203.tistory.com

 

... 끝!!

'ML & DL > Deep Learning' 카테고리의 다른 글

[DL] Tensoflow.Keras ImageDataGenerator  (0) 2023.02.14
[DL] PyTorch로 인공신경망(ANN) 구현하기  (0) 2023.01.11

댓글