Khi bạn đang làm việc phân loại hình ảnh và cũng muốn thực hiện một số gia tăng dữ liệu, bạn có thể kết hợp hai VÀ tải các lô trực tiếp từ một thư mục bằng cách sử dụng lớp 'ImageDataGenerator` hùng mạnh.
Có một cái nhìn vào các tài liệu thực thi!
Tôi sẽ không sao chép và dán ví dụ từ liên kết đó, nhưng tôi có thể phác thảo các bước bạn trải qua:
tạo lớp trình tạo: data_gen = ImageDataGenerator()
Nếu bạn muốn nó thực hiện việc tăng tốc nhanh chóng cho bạn, điều đó có thể được chỉ định khi tạo lớp: data_gen = ImageDataGenerator(samplewise_center=True, ...)
Nếu bạn sử dụng quá trình tăng thêm rằng yêu cầu một số liệu thống kê về số liệu, ví dụ như feature_wise bình thường (không mẫu-khôn ngoan), bạn phải chuẩn bị máy phát điện bằng cách hiển thị nó một số dữ liệu của bạn: data_gen.fit(training_data)
. fit
Phương pháp này chỉ đơn giản là tính toán trước những thứ như độ lệch trung bình và độ lệch chuẩn, sau này được sử dụng để chuẩn hóa.
trình tạo đi vào fit_generator
phương thức của mô hình và chúng ta gọi flow_from_directory
phương thức của trình tạo:
model.fit_generator(training_data=data_gen.flow_from_directory('/path/to/folder/'), ...)
Bạn cũng có thể tạo một trình tạo riêng bằng ImageDataGenerator cho dữ liệu xác thực của mình, khi đó bạn không nên áp dụng tính năng tăng cường, để các kiểm tra xác thực được thực hiện trên dữ liệu thực, cung cấp cho bạn và hình ảnh chính xác về hiệu suất của mô hình.
Trong mọi trường hợp, các trình tạo này về mặt lý thuyết sẽ chạy mãi mãi, tạo các lô từ thư mục của bạn. Do đó, tôi khuyên bạn nên sử dụng chức năng gọi lại từ Keras để dừng khi đáp ứng một tiêu chí nhất định. Xem tài liệu cho lớp EarlyStopping . Bạn cũng có thể làm điều này bằng tay, nhưng Keras làm cho nó rất đơn giản!
Nếu bạn muốn kiểm soát chi tiết, bạn có thể thực hiện tất cả các cách trên một cách thủ công, tải đủ mẫu từ đĩa cho một lô, thực hiện một số gia tăng và sau đó chạy model.train_on_batch()
phương thức. Nếu bạn muốn tìm hiểu chi tiết, trước tiên bạn có thể học theo cách của Keras, sau đó tiến tới các mô hình chi tiết của riêng bạn để kết hợp với Tensorflow theo yêu cầu. Cả hai có thể được sử dụng rất độc đáo!