exponenta event banner

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

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

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

Для создания модулей кодера и декодера можно:

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

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

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

Тип блокаОписание
Начальный блок
  • Один imageInputLayer (инструментарий для глубокого обучения)

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

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

  • Уровень активации

Блок понижающей дискретизации
  • Уровень понижающей дискретизации, например, уровень объединения или convolution2dLayer (Deep Learning Toolbox) с шагом больше 1

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

  • Уровень активации

Остаточный блок
  • A convolution2dLayer (инструментарий для глубокого обучения)

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

  • Уровень активации

  • Необязательный уровень отсева

  • Секунда convolution2dLayer (инструментарий для глубокого обучения)

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

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

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

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

  • Уровень активации

Окончательный блок
  • A convolution2dLayer (инструментарий для глубокого обучения)

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

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

После установки кодера и модуля декодера можно объединить модули для формирования сети дискриминатора CNN, GAN-генератора или GAN-дискриминатора с помощью encoderDecoderNetwork функция. В конце сети можно дополнительно включить мостовое соединение, пропускать соединения или дополнительные слои.

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

См. также

| |

Связанные темы