主要内容

创建模块化神经网络

许多用于图像处理应用的神经网络都有一个遵循模块化模式的架构。该模式由下行采样输入的编码器模块和上行采样数据的解码器组成。桥接层可选地连接编码器和解码器模块。这种模块化模式被用于卷积神经网络(cnn),如U-Net,以及生成对抗网络(GAN)生成器和鉴别器网络,如CycleGAN和PatchGAN。

创建编码器和解码器模块

要创建编码器和解码器模块,你可以:

  • 将预先训练好的网络(如SqueezeNet),使用pretrainedEncoderNetwork函数。该函数删除预先训练的网络,以便编码器包含您指定的向下采样操作的数量。

  • 从遵循重复模式的层构建块创建编码器和解码器模块。要创建模块,请定义一个指定模式的函数,然后使用blockedNetwork函数。

编码器模块由层的初始块、下采样块和残留块组成。解码器模块由上采样块和提供网络输出的最后块组成。该表描述了通常由编码器和解码器模块组成的层块。

类型的块 描述
最初的块
将采样块
  • 向下采样层,如池化层或convolution2dLayer(深度学习工具箱)步幅大于1

  • 可选的标准化层

  • 一个激活层

剩余块
  • 一个convolution2dLayer(深度学习工具箱)

  • 可选的标准化层

  • 一个激活层

  • 一个可选的退出层

  • 第二个convolution2dLayer(深度学习工具箱)

  • 可选的第二规格化层

  • 一个additionLayer(深度学习工具箱)这在每个块之间提供了一个跳过连接

Upsampling块
  • 执行上采样的层,如转置卷积层,或在调整大小或深度到空间层之后的卷积层。

  • 可选的标准化层

  • 一个激活层

最后一块

从编码器和解码器模块创建网络

有了编码器和解码器模块后,可以将模块组合成CNN、GAN生成器或GAN鉴别器网络encoderDecoderNetwork函数。您可以选择包括网桥连接、跳过连接或网络末端的附加层。

您还可以使用图像处理工具箱™中的函数直接创建流行的GAN生成器和鉴别器网络。这些网络包括CycleGAN、PatchGAN、pix2pixHD和UNIT。有关更多信息,请参见开始使用GANs进行图像到图像的翻译

另请参阅

||

相关的话题