Создайте модульные нейронные сети

Много нейронных сетей, используемых для приложений для обработки изображений, имеют архитектуру, которая следует за модульным шаблоном. Шаблон состоит из модуля энкодера, который прореживает вход, сопровождаемый декодером, который сверхдискретизировал данные. Мостоукладчики опционально соединяют модули энкодера и декодера. Модульный шаблон используется сверточными нейронными сетями (CNNs), такими как U-Net, и генератор порождающей соперничающей сети (GAN) и сети различителя, такие как CycleGAN и PatchGAN.

Создайте модули энкодера и декодера

Чтобы создать модули энкодера и декодера, вы можете:

  • Создайте сеть энкодера из предварительно обученной сети, такой как SqueezeNet, с помощью pretrainedEncoderNetwork функция. Функция сокращает предварительно обученную сеть, таким образом, что энкодер включает количество субдискретизации операций, которые вы задаете.

  • Создайте модули энкодера и декодера из базовых блоков слоев, которые следуют за повторяющимся шаблоном. Чтобы создать модуль, задайте функцию, которая задает шаблон, затем соберите блоки в модуль с помощью blockedNetwork функция.

Модуль энкодера состоит из начального блока слоев, прореживая блоки и остаточные блоки. Модуль декодера состоит из повышающей дискретизации блоков и итогового блока, который обеспечивает сетевой выход. Таблица описывает блоки слоев, которые обычно включают модули энкодера и декодера.

Тип блокаОписание
Начальный блок
  • imageInputLayer (Deep Learning Toolbox)

  • convolution2dLayer (Deep Learning Toolbox) шагом [1 1]

  • Дополнительный слой нормализации

  • Слой активации

Блок Downsampling
  • Слой субдискретизации, такой как слой объединения или convolution2dLayer (Deep Learning Toolbox) шагом, больше, чем 1

  • Дополнительный слой нормализации

  • Слой активации

Остаточный блок
  • convolution2dLayer (Deep Learning Toolbox)

  • Дополнительный слой нормализации

  • Слой активации

  • Дополнительный слой уволенного

  • Второй convolution2dLayer (Deep Learning Toolbox)

  • Дополнительный второй слой нормализации

  • additionLayer (Deep Learning Toolbox), который обеспечивает связь пропуска между каждым блоком

Блок Upsampling
  • Слои, которые выполняют повышающую дискретизацию, такую как транспонированный слой свертки или слой свертки, сопровождаемый слоем глубины к пробелу или изменением размеров.

  • Дополнительный слой нормализации

  • Слой активации

Итоговый блок
  • convolution2dLayer (Deep Learning Toolbox)

  • Дополнительный выходной слой

Создайте сети из модулей энкодера и декодера

После того, как у вас будут энкодер и модуль декодера, можно объединить модули, чтобы сформировать CNN, генератор ГАНЯ или сеть различителя GAN использование encoderDecoderNetwork функция. Можно опционально включать мостиковое соединение, связи пропуска или дополнительные слои в конце сети.

Можно также создать популярный генератор GAN и сети различителя непосредственно при помощи функций, доступных в Image Processing Toolbox™. Эти сети включают CycleGAN, PatchGAN, pix2pixHD, и МОДУЛЬ. Для получения дополнительной информации смотрите Начало работы с GANs для Перевода От изображения к изображению.

Смотрите также

| |

Похожие темы