batch size của hàm fit và optimize='sgd'

deep-learning

#1

Chào các bạn, mình là newbie in deep learning.

Khi mô hình sử dụng optimize là sgd- nghĩa là thuật toán sẽ lấy ngẫu nhiên 1 giá trị của input rồi tính toán để update weights và bias, như vậy mặc định batch_size của thuật toán này là 1.

Nhưng mình thấy nhiều model, phần training với hàm fit, không đặt giá trị cho batch_size, nghĩa là trong hàm fit này batch size default là 32.

Như vậy mô hình sẽ học như thế nào ạ? (Theo như suy nghĩ của mình hiện tại là , hàm fit có batch_size là 32, thì trong mỗi epoch, máy tính sẽ load từng batch dữ liệu có 32 giá trị input đầu vào, rồi hàm optimize sẽ lấy từng input để tính rồi update weight/bias. Nhưng mà như vậy batch_size trong hàm fit lại không liên quan tới batch_size của optimize nữa)

Các bạn giúp mình thông não vấn đề này với nhé. Cảm ơn ạ


#2

Dữ liệu thường sẽ được đóng thành các DataLoader có tính shuffle

Mục đích của batch_size là đưa 32 điểm dữ liệu vào model và có được 32 cái loss output. Và Trung bình 32 loss đó để update dữ liệu. Nếu đưa vào batch_size = 32 vào rồi tính từng điểm input thì đưa vào làm gì. Đưa 1 cái cho nhanh.

Mục đích cuối cùng của dữ liệu và đưa qua model và tính loss và để cập nhật weights.

  • việc training nó nhanh hơn so với việc b dùng 1 input để cập nhật lần một.
  • theo các thử nghiệm cho các bài toán khi batch_size phù hợp nó mang lại kq tốt hơn