군침이 싹 도는 코딩

fit 함수에서 epoch 와 batch_size에 대한 설명 본문

Python/Deep Learning

fit 함수에서 epoch 와 batch_size에 대한 설명

mugoori 2022. 12. 27. 15:52
model.fit(X_train,y_train,batch_size=10, epochs=20)
>>> 
Epoch 1/20
800/800 [==============================] - 2s 2ms/step - loss: 0.5123 - accuracy: 0.7931
Epoch 2/20
800/800 [==============================] - 2s 2ms/step - loss: 0.4698 - accuracy: 0.7960
Epoch 3/20
800/800 [==============================] - 2s 2ms/step - loss: 0.4561 - accuracy: 0.7959
Epoch 4/20
800/800 [==============================] - 2s 2ms/step - loss: 0.4455 - accuracy: 0.8005
Epoch 5/20
800/800 [==============================] - 1s 2ms/step - loss: 0.4370 - accuracy: 0.8077
Epoch 6/20
800/800 [==============================] - 2s 2ms/step - loss: 0.4299 - accuracy: 0.8135
Epoch 7/20
800/800 [==============================] - 3s 4ms/step - loss: 0.4223 - accuracy: 0.8169
Epoch 8/20
800/800 [==============================] - 2s 2ms/step - loss: 0.4114 - accuracy: 0.8229
Epoch 9/20
800/800 [==============================] - 2s 2ms/step - loss: 0.3953 - accuracy: 0.8320
Epoch 10/20
800/800 [==============================] - 2s 2ms/step - loss: 0.3804 - accuracy: 0.8404
Epoch 11/20
800/800 [==============================] - 1s 2ms/step - loss: 0.3707 - accuracy: 0.8460
Epoch 12/20
800/800 [==============================] - 1s 2ms/step - loss: 0.3636 - accuracy: 0.8491
Epoch 13/20
800/800 [==============================] - 1s 2ms/step - loss: 0.3611 - accuracy: 0.8514
Epoch 14/20
800/800 [==============================] - 2s 2ms/step - loss: 0.3578 - accuracy: 0.8531
Epoch 15/20
800/800 [==============================] - 1s 2ms/step - loss: 0.3564 - accuracy: 0.8537
Epoch 16/20
800/800 [==============================] - 2s 2ms/step - loss: 0.3551 - accuracy: 0.8547
Epoch 17/20
800/800 [==============================] - 1s 2ms/step - loss: 0.3531 - accuracy: 0.8566
Epoch 18/20
800/800 [==============================] - 2s 2ms/step - loss: 0.3523 - accuracy: 0.8562
Epoch 19/20
800/800 [==============================] - 1s 2ms/step - loss: 0.3516 - accuracy: 0.8564
Epoch 20/20
800/800 [==============================] - 1s 2ms/step - loss: 0.3502 - accuracy: 0.8564
<keras.callbacks.History at 0x7fc201288ee0>

epoch

●  한 번의 epoch는 신경망에서 전체 데이터 셋에 대해 forward pass/backward pass 과정을 거친 것을 말함. 즉, 전체 데이터 셋에 대해 한 번 학습을 완료한 상태

●  예시에서는 epoch 를 20번으로 지정했기때문에 전체 데이터를 20번 반복해서 학습한다

 

 

    batch_size

●  메모리의 한계와 속도 저하 때문에 대부분의 경우에는 한 번의 epoch에서 모든 데이터를 한꺼번에 집어넣을 수는 없습니다. 그래서 데이터를 나누어서 주게 되는데 이때 몇 번 나누어서 주는가를 iteration, 각 iteration마다 주는 데이터 사이즈를 batch size라고 합니다.

●  예시에서는 10으로 주었기때문에 800/800 이라고 뜬다