пʼятниця, 28 травня 2021 р.

Доповнення набору даних (data augmentation)

Бібліотека глибокого навчання Keras надає можливість автоматично збільшувати кількість даних (data augmentation) при навчанні моделі. Це досягається за допомогою класу ImageDataGenerator який створює пакети (batch) тензорів збільшуючи кількість даних у режимі реального часу. Дані будуть пропущені в мережу в циклі (партіями).

Нагадаємо, що в Python під ітератором, спрощено, розуміється такий складний об'єкт, елементи якого можна послідовно перебирати використовуючи метод next(). Генератор це клас для генерації ітераторів, причому в пам'яті буде зберігатися лише один елемент ітератора, що зручно при роботі з великими масивами даних.

ImageDataGenerator формує пакети даних, виконуючи над кожною фотографією деякі перетворення для того щоб збільшити кількість навчальних даних. Клас має кілька методів, але ми зосередимо увагу на таких основних типах примноження зображень, а саме:

  • width_shift_range, height_shift_range: горизонтальний та вертикальний Зсув зображення
  • horizontal_flip та vertical_flip: горизонтальне та вертикальне відзеркалення
  • rotation_range: Обертання зображень
  • lightness_range: Зміна яскравості зображення
  • zoom_range: Зміна розмірів зображення
  • rescale: Нормування зображення множенням на коефіцієнт
  • shear_range: Перекошування зображення, аргумент вказується у градусах
Для прикладу, якщо до зображення літака із нашого набору даних
застосувати генератор зображень з параметрами
datagen = ImageDataGenerator(shear_range = 20)
то ми отримаємо нові скошені(shear) зображення літака:
які випадково згенеровані у вказаному діапазоні зсуву, які додадуться на нашого набору даних і будуть використані при навчанні нейронної мережі

Немає коментарів:

Дописати коментар