راه
۶ کیو· متوسطمتوسطPYTHON۴ ثانیه · ۲۵۶ مگابایت

داده‌افزایی: برش تصادفی و قرینه

رایج‌ترین داده‌افزایی برای تصویرهای کوچک (مثل CIFAR) این دو تبدیل است:

python
transforms.RandomCrop(32, padding=4)
transforms.RandomHorizontalFlip()

اولی دور تصویر padding پیکسل صفر می‌گذارد و بعد از جایی تصادفی برشی هم‌اندازه‌ی تصویر اصلی برمی‌دارد — یعنی تصویر چند پیکسل جابه‌جا می‌شود. دومی با احتمال یک‌دوم تصویر را چپ‌وراست قرینه می‌کند. این‌جا تصادف را کنار می‌گذاریم و جای برش و قرینه شدن داده می‌شود.

تابع augment(img, pad, top, left, flip):

  1. img تصویری با شکل H×W×CH \times W \times C است (ارتفاع، عرض، کانال). دور دو محور مکانی آن pad صفر بگذارید (محور کانال دست نخورد).
  2. از تصویر حاشیه‌دار، برش H×WH \times W را بردارید که گوشه‌ی بالا-چپش سطر top و ستون left است.
  3. اگر flip برابر یک است، ترتیب ستون‌ها را برعکس کنید.

خروجی: تصویر H×W×CH \times W \times C.

نمونه‌ها

ورودی نمونه ۱
[[[[121], [131], [193], [243]], [[8], [36], [210], [242]], [[63], [79], [222], [108]], [[69], [211], [65], [104]]], 1, 1, 1, 1]
خروجی نمونه ۱
[[[243.0], [193.0], [131.0], [121.0]], [[242.0], [210.0], [36.0], [8.0]], [[108.0], [222.0], [79.0], [63.0]], [[104.0], [65.0], [211.0], [69.0]]]

برای نوشتن پاسخ و دریافت امتیاز، ابتدا وارد حساب شوید.

ورود