主要内容

unitGenerator

创建无监督image-to-image翻译(单位)发电机网络

自从R2021a

描述

例子

= unitGenerator (inputSizeSource)创建一个单元发生器的网络,输入的大小inputSizeSource。关于网络体系结构的更多信息,请参阅单位发电机网络。网络有两个输入和四个输出:

  • 两个网络的输入图像的源和目标域。默认情况下,目标图像大小与源图像大小相同。你可以改变通道的数量在目标图像通过指定的NumTargetInputChannels“名称-值参数。

  • 两个网络的输出self-reconstructed输出,换句话说,source-to-source和target-to-target翻译图像。其他两个网络输出源到目标和target-to-source翻译图片。

这个函数需要深度学习工具箱™。

例子

= unitGenerator (inputSizeSource,名称,值)修改方面的单元发生器使用名称-值的网络参数。

例子

全部折叠

指定网络输入大小的RGB图像大小128 - 128。

inputSize = (128 128 3);

创建一个单元发生器产生的RGB图像输入的大小。

净= unitGenerator (inputSize)
净= dlnetwork属性:层:x1 nnet.cnn.layer.Layer[9]连接:[8 x2表]可学的:[168 x3表]状态:[0 x3表]InputNames: {“inputSource”“inputTarget”} OutputNames: {decoderSourceBlock /着干活的‘decoderSourceBlock / out2 decoderTargetBlock /着干活的‘decoderTargetBlock / out2’}初始化:1观点总结总结。

显示网络。

analyzeNetwork(净)

指定网络输入大小的RGB图像大小128 - 128。

inputSize = (128 128 3);

创建一个单元发生器与五残块,三是编码器和解码器模块之间共享。

网= unitGenerator (inputSize,“NumResidualBlocks”5,“NumSharedBlocks”3)
净= dlnetwork属性:层:x1 nnet.cnn.layer.Layer[9]连接:[8 x2表]可学的:[152 x3表]状态:[0 x3表]InputNames: {“inputSource”“inputTarget”} OutputNames: {decoderSourceBlock /着干活的‘decoderSourceBlock / out2 decoderTargetBlock /着干活的‘decoderTargetBlock / out2’}初始化:1观点总结总结。

显示网络。

analyzeNetwork(净)

输入参数

全部折叠

输入源图像的大小,指定为正整数的转换向量。inputSizeSource的形式(HWC),H的高度,W是宽度,C通道的数量。每个维度的长度必须整除2 ^NumDownsamplingBlocks

名称-值参数

指定可选的双参数作为Name1 = Value1,…,以=家,在那里的名字参数名称和吗价值相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。

R2021a之前,用逗号来分隔每一个名称和值,并附上的名字在报价。

例子:“NumDownsamplingBlocks”, 3创建一个网络与3将采样块

将采样数块源编码器和目标编码器子网,指定为一个正整数。总的来说,编码器模块downsamples源和目标输入2倍^NumDownsamplingBlocks。源解码器和目标解码器子网具有相同数量的upsampling块。

的残块编码器模块,指定为一个正整数。解码器模块有相同数量的残块。

共享的残块编码器子网,指定为一个正整数。共享解码器子网有相同数量的残块。网络应包含至少一个共享的残块。

在目标图像数量的渠道,指定为一个正整数。默认情况下,“NumTargetChannels通道的数量是一样的源图像,inputSizeSource

指定数量的卷积过滤器在第一层,甚至是一个积极的整数。

过滤器尺寸的第一个和最后一个卷积层网络,指定为一个积极的奇数的正奇数或者2-element向量的形式高度宽度]。当你指定过滤器的大小作为一个标量,过滤器有同样的高度和宽度。

过滤器尺寸在中间卷积层,指定为一个积极的奇数的正奇数或者2-element向量的形式高度宽度]。中间卷积层卷积层包括第一个和最后一个卷积层。当你指定过滤器的大小作为一个标量,过滤器有相同的高度和宽度。

风格的网络中使用的填充,指定为一个值。

PaddingValue 描述 例子
数字标量 垫与指定的数值

( 3 1 4 1 5 9 2 6 5 ] ( 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 1 4 2 2 2 2 1 5 9 2 2 2 2 2 6 5 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 ]

“symmetric-include-edge” 垫使用镜像的输入值,包括边缘值

( 3 1 4 1 5 9 2 6 5 ] ( 5 1 1 5 9 9 5 1 3 3 1 4 4 1 1 3 3 1 4 4 1 5 1 1 5 9 9 5 6 2 2 6 5 5 6 6 2 2 6 5 5 6 5 1 1 5 9 9 5 ]

“symmetric-exclude-edge” 垫使用镜像的输入值,排除边缘值

( 3 1 4 1 5 9 2 6 5 ] ( 5 6 2 6 5 6 2 9 5 1 5 9 5 1 4 1 3 1 4 1 3 9 5 1 5 9 5 1 5 6 2 6 5 6 2 9 5 1 5 9 5 1 4 1 3 1 4 1 3 ]

“复制” 垫使用重复的边界元素的输入

( 3 1 4 1 5 9 2 6 5 ] ( 3 3 3 1 4 4 4 3 3 3 1 4 4 4 3 3 3 1 4 4 4 1 1 1 5 9 9 9 2 2 2 6 5 5 5 2 2 2 6 5 5 5 2 2 2 6 5 5 5 ]

方法用于upsample激活,指定这些值之一:

数据类型:字符|字符串

重初始化用于卷积层,指定为“glorot”,“他”,“narrow-normal”,或一个函数处理。有关更多信息,请参见指定自定义权重的初始化函数(深度学习工具箱)

激活函数使用网络中除了第一个和最后卷积层后,指定为其中一个值。的unitGenerator函数自动添加一个漏水的ReLU层卷积在第一层。和可用的层列表的更多信息,见激活层(深度学习工具箱)

  • “relu”——使用一个reluLayer(深度学习工具箱)

  • “leakyRelu”——使用一个leakyReluLayer(深度学习工具箱)比例因子为0.2

  • “elu”——使用一个eluLayer(深度学习工具箱)

  • 一层对象

激活函数在源解码器最后卷积层后,指定为其中一个值。和可用的层列表的更多信息,见输出层(深度学习工具箱)

  • ”“双曲正切——使用一个tanhLayer(深度学习工具箱)

  • “乙状结肠”——使用一个sigmoidLayer(深度学习工具箱)

  • “softmax”——使用一个softmaxLayer(深度学习工具箱)

  • “没有”——不使用最后一个激活层

  • 一层对象

激活函数的最后卷积层目标解码器后,指定为其中一个值。和可用的层列表的更多信息,见输出层(深度学习工具箱)

  • ”“双曲正切——使用一个tanhLayer(深度学习工具箱)

  • “乙状结肠”——使用一个sigmoidLayer(深度学习工具箱)

  • “softmax”——使用一个softmaxLayer(深度学习工具箱)

  • “没有”——不使用最后一个激活层

  • 一层对象

输出参数

全部折叠

发电机单元网络,作为一个返回dlnetwork(深度学习工具箱)对象。

更多关于

全部折叠

单位发电机网络

单位发电机网络包括三个子网在随后一个编码器模块由三个子网解码器模块。默认网络刘提出的架构,Breuel, Kautz[1]

输入,编码器模块,译码器模块和输出单元的网络。

编码器模块downsamples输入2倍^NumDownsamplingBlocks。编码器模块包括三个子网。

  • 源编码器子网,叫做‘encoderSourceBlock’,有一个初始层接收数据块在源域,X年代。然后子网已NumDownsamplingBlocks将采样块downsample数据和NumResidualBlocks- - - - - -NumSharedBlocks残块。

  • 目标编码器子网,叫做‘encoderTargetBlock’,有一个初始层接收数据块在目标域,X年代。然后子网已NumDownsamplingBlocks将采样块downsample数据,NumResidualBlocks- - - - - -NumSharedBlocks残块。

  • 源编码器和目标编码器的输出相结合的concatenationLayer(深度学习工具箱)

  • 共享剩余编码器子网,称为“encoderSharedBlock”,并接受连接数据NumSharedBlocks残块。

解码器模块包括三个子网,执行的NumDownsamplingBlocksupsampling操作数据。

  • 共享剩余解码器子网,称为“decoderSharedBlock”,从编码器,并接受数据NumSharedBlocks残块。

  • 源解码器子网,叫做‘decoderSourceBlock’,NumResidualBlocks- - - - - -NumSharedBlocks残块,NumDownsamplingBlocks将采样块downsample数据,最后一块层返回的输出。这个子网返回两个输出源域:XTSX党卫军。输出XTS翻译是一个图像从目标域源域。输出X党卫军是一个self-reconstructed图像从源域到源域。

  • 目标解码器子网,叫做‘decoderTargetBlock’,NumResidualBlocks- - - - - -NumSharedBlocks残块,NumDownsamplingBlocks将采样块downsample数据,最后一块层返回的输出。这个子网返回两个输出在目标域:XXTT。输出XTS翻译是一个图像从源域到目标域。输出XTT是一个self-reconstructed图像从目标域到目标域。

表描述了子网层组成的街区。

块类型 默认的图块
最初的块

图像输入层,二维卷积层,漏ReLU层

将采样块
  • 一个convolution2dLayer(深度学习工具箱)步的执行将采样2 [2]。卷积层有一个过滤器的大小FilterSizeInIntermediateBlocks

  • 一个instanceNormalizationLayer(深度学习工具箱)

  • 一个激活指定的层ActivationLayer名称-值参数。

归一化层二维卷积层,实例,ReLU层

剩余块

归一化层二维卷积层,实例,ReLU层,二维卷积层,实例归一化层,层

Upsampling块
  • 一个upsamples upsampling层根据的2倍UpsampleMethod名称-值参数。卷积层有一个过滤器的大小FilterSizeInIntermediateBlocks

  • 一个instanceNormalizationLayer(深度学习工具箱)

  • 一个激活指定的层ActivationLayer名称-值参数。

归一化层转置二维卷积层,实例,ReLU层

最后一块
  • 一个convolution2dLayer(深度学习工具箱)的步伐[1]和一个过滤器的大小FilterSizeInFirstAndLastBlocks

  • 一个可选的激活指定的层SourceFinalActivationLayerTargetFinalActivationLayer名称-值参数。

二维卷积层,双曲正切层

提示

引用

[1]Liu Ming-Yu,托马斯Breuel, Jan Kautz。“无监督Image-to-Image翻译网络。”神经信息处理系统的进步30(2017年捏)。长滩,CA: 2017。https://arxiv.org/abs/1703.00848

版本历史

介绍了R2021a