ПочатиПочніть безкоштовно

Реалізуйте власну операцію пулінгу

Як ми вже бачили, CNN можуть мати дуже багато параметрів. Шари пулінгу часто додають між згортковими шарами нейронної мережі, щоб стисло підсумувати їхні виходи та зменшити кількість параметрів у наступному шарі мережі. Це може допомогти, якщо ви хочете швидше навчати мережу або якщо у вас недостатньо даних, щоб навчити дуже велику кількість параметрів.

Шар пулінгу можна розглядати як особливий різновид згортки. Для кожного вікна у вхідних даних він знаходить максимальне значення пікселя й пропускає далі лише цей піксель. У цій вправі ви реалізуєте власну операцію max pooling на основі коду, який ви раніше використовували для написання двовимірної операції згортки.

Ця вправа є частиною курсу

Моделювання зображень у Keras

Переглянути курс

Інструкції до вправи

  • Виконайте індексування у вхідному масиві (im) і виберіть потрібне вікно.
  • Знайдіть максимум у цьому вікні.
  • Запишіть його до відповідного елемента у вихідному масиві (result).

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

# Result placeholder
result = np.zeros((im.shape[0]//2, im.shape[1]//2))

# Pooling operation
for ii in range(result.shape[0]):
    for jj in range(result.shape[1]):
        result[ii, jj] = np.max(____)
Редагувати та запускати код