Data augmentation
خیلی مواقع دیتای ما کم است یا برای train کردن کافی نیست.برای مثال اگر تنها یکی دو عکس گربه داشته باشیم.در این صورت از روش augmentation (تقویت) استفاده می کنیم. این گونه که در عکس گربه تغییراتی اعمال میکنیم که باعث ایجاد عکس جدیدی بشود (تا زمانی که عکس همچنان گربه و طبیعی و قابل شناسایی باشد) ، هدف ما این است که پیکسل ها تغییر یابند ولی عکس کلی هنوز گربه باشد .مثلا بریدن و زوم کردن ، تغییر مقیاس ، آینه کردن (قرینه افقی)، تغییر رنگ و غیره ( این “غیره”می تواند هر چیزی باشد تا زمانی که حاصل طبیعی و همچنان گربه باشد)
واضح است که این کار از استفاده کردن از یک عکس گربه خیلی بهتر است ولی به پای استفاده از چندین عکس از گربه های مختلف نمی رسد.
استفاده از ImageDataGenerator
این فانکشن ، بطور رندوم اندازه ای کمتر یا مساوی از آپشن های تعیین شده را در دیتا دخیل داده و دیتا های جدید تولید میکند.
به همین خاطر با هربار اجرا، پاسخ جدیدی خواهد داد که ترکیبی رندوم از این هاست.
توضیح آپشن ها:
rotation_range عددی بین 0و180 درجه که حداکثر میزان چرخاندن را نشان میدهد
width_shift & height_shift حداکثر جابجا شدن و شیفت شدن افقی و عمودی
shear_rangeبا شکل توضیح بدهم بهتره، این:
zoom_range حداکثر میزان داخل تصویر زوم کردن(به نوعی همان crop کردن
horizontal_flip اگر true باشد می تواند تصویر را آینه(قرینه افقی) کند.دقت کنید “میتواند” یعنی ممکن هم هست که نکند.
fill_mode شیوه پر کردن پیکسل های تازه ایجاد شده
کدها برگرفته از فصل دو کتاب Deep Learning with Python و گیت هاب نویسنده کتاب و توسعه دهنده کراس François Chollet است.
شبکه های اجتماعی