Tạo Data Augmentation với Functional API Model - Keras

deep-learning

#1

Chào mọi người,

Mình đang sử dụng Keras để viết mô hình.

Model của mình được viết dưới dạng Functional API - cách này có giúp mình có thể tùy chỉnh multiple inputs lẫn multiple outputs. Do đó mình phải define lại Data Image Generator, viết dưới dạng Class Module.

Tuy nhiên, mình không biết tạo Data Augmentation từ Data Image Generator như thế nào?

  • Ví dụ như 1 batch gồm 16 hình sẽ sử dụng 1 method trong augmentation collections hay sao.
  • Cách tạo custom Data Augmentation để có thể dễ tích hợp với model.fit_generator ạ

Xin cảm ơn ạ.


#2

Về cơ bản có hai cách thực hiện augmentation laf: offline và online.

  • Cách offline thì mình thực hiện hết các biến đổi augmentor này trước khi huấn luyện (lưu ra file).
  • Online là cách thực hiện biến đổi ngay khi đang huấn luyện.

Thông thường thì mọi người sẽ dùng online augmentation. Cách để custom image data generator cũng khá đơn giản. Bạn chỉ cần viết một generator để yield ra các batch là được. Trong hàm này bạn muốn làm gì thì làm. Sau đó, dùng hàm fit_generator như bình thường. Cái này google là sẽ ra thôi :D. Ví dụ:

def my_custom_generator(file_paths, labels):
    # read data and do augmentation
    yield batch

Cuối cùng, augmentation thì thường áp dụng cho từng ảnh một. Các hàm augmentation được áp dụng với xác suất ngẫu nhiên nào đó tùy thuộc vào bạn.


#3

Mình cảm ơn bạn đã giải đáp. Mình đã làm thành công rồi ạ ^^.