许多用于图像处理应用的神经网络都有一个遵循模块化模式的架构。该模式由下行采样输入的编码器模块和上行采样数据的解码器组成。桥接层可选地连接编码器和解码器模块。这种模块化模式被用于卷积神经网络(cnn),如U-Net,以及生成对抗网络(GAN)生成器和鉴别器网络,如CycleGAN和PatchGAN。
要创建编码器和解码器模块,你可以:
将预先训练好的网络(如SqueezeNet),使用pretrainedEncoderNetwork
函数。该函数删除预先训练的网络,以便编码器包含您指定的向下采样操作的数量。
从遵循重复模式的层构建块创建编码器和解码器模块。要创建模块,请定义一个指定模式的函数,然后使用blockedNetwork
函数。
编码器模块由层的初始块、下采样块和残留块组成。解码器模块由上采样块和提供网络输出的最后块组成。该表描述了通常由编码器和解码器模块组成的层块。
类型的块 | 描述 |
---|---|
最初的块 |
|
将采样块 |
|
剩余块 |
|
Upsampling块 |
|
最后一块 |
|
有了编码器和解码器模块后,可以将模块组合成CNN、GAN生成器或GAN鉴别器网络encoderDecoderNetwork
函数。您可以选择包括网桥连接、跳过连接或网络末端的附加层。
您还可以使用图像处理工具箱™中的函数直接创建流行的GAN生成器和鉴别器网络。这些网络包括CycleGAN、PatchGAN、pix2pixHD和UNIT。有关更多信息,请参见开始使用GANs进行图像到图像的翻译.
encoderDecoderNetwork
|blockedNetwork
|pretrainedEncoderNetwork