unitGenerator
创建无监督图像到图像转换(UNIT)生成器网络
描述
创建一个UNIT发生器网络,网
= unitGenerator (inputSizeSource
)网
,作为大小的输入inputSizeSource
.有关网络架构的更多信息,请参见机组发电机网络.网络有两个输入和四个输出:
两个网络输入是源域和目标域中的图像。默认情况下,目标图像大小与源图像大小相同。您可以通过指定'来更改目标图像中的通道数量。
NumTargetInputChannels
的名称-值参数。其中两个网络输出是自重构输出,换句话说,是源到源和目标到目标的翻译图像。另外两个网络输出是源到目标和目标到源的转换图像。
此功能需要深度学习工具箱™。
使用名称-值参数修改UNIT生成器网络的各个方面。网
= unitGenerator (inputSizeSource
,名称,值
)
例子
创建单元生成器
为大小为128 × 128的RGB图像指定网络输入大小。
inputSize = [128 128 3];
创建一个UNIT生成器,生成输入大小的RGB图像。
net = unitGenerator(inputSize)
net = dlnetwork with properties: Layers: [9x1 nnet.cnn.layer.Layer] Connections: [8x2 table] Learnables: [168x3 table] State: [0x3 table] InputNames: {'inputSource' 'inputTarget'} OutputNames: {1x4 cell} Initialized: 1 .初始化
显示网络。
analyzeNetwork(净)
用五个剩余块创建单元生成器
为大小为128 × 128的RGB图像指定网络输入大小。
inputSize = [128 128 3];
创建一个带有五个剩余块的UNIT生成器,其中三个在编码器和解码器模块之间共享。
net = unitGenerator(inputSize,“NumResidualBlocks”5,...“NumSharedBlocks”3)
net = dlnetwork with properties: Layers: [9x1 nnet.cnn.layer.Layer] Connections: [8x2 table] Learnables: [152x3 table] State: [0x3 table] InputNames: {'inputSource' 'inputTarget'} OutputNames: {1x4 cell} Initialized: 1 .初始化
显示网络。
analyzeNetwork(净)
输入参数
inputSizeSource
- - - - - -输入源图像的大小
正整数的三元向量
输入源图像的大小,指定为3个元素的正整数向量。inputSizeSource
有[HWC),H是高度,W是宽度,和C是通道数。每个维度的长度必须能被2^整除NumDownsamplingBlocks
.
名称-值参数
的可选逗号分隔对名称,值
参数。的名字
参数名称和价值
对应的值。的名字
必须出现在引号内。您可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家
.
“NumDownsamplingBlocks”,3
用3个下采样块创建一个网络
NumDownsamplingBlocks
- - - - - -下采样块数
2
(默认)|正整数
源编码器和目标编码器子网中的下采样块数,指定为正整数。总的来说,编码器模块将源和目标输入的采样降低了2^NumDownsamplingBlocks
.源解码器和目标解码器子网络具有相同数量的上采样块。
NumResidualBlocks
- - - - - -剩余块数
5
(默认)|正整数
编码器模块中的剩余块数,指定为正整数。解码器模块具有相同数量的剩余块。
NumSharedBlocks
- - - - - -共享剩余块数
2
(默认)|正整数
共享编码器子网中的剩余块数,指定为正整数。共享解码器子网具有相同数量的剩余块。网络应至少包含一个共享剩余块。
NumTargetChannels
- - - - - -目标图像中的通道数
正整数
目标图像中的通道数,指定为正整数。默认情况下,'NumTargetChannels
'与源图像中的通道数相同,inputSizeSource
.
NumFiltersInFirstBlock
- - - - - -第一卷积层的滤波器个数
64
(默认)|正偶数
第一卷积层中的过滤器数量,指定为正偶数。
FilterSizeInFirstAndLastBlocks
- - - - - -第一个和最后一个卷积层的滤波器大小
7
(默认)|正奇数|正奇数的2元向量
网络第一层和最后一层卷积层中的过滤器大小,指定为正奇数整数或形式为[的正奇数的2元素向量高度宽度].当您将筛选器大小指定为标量时,筛选器具有相等的高度和宽度。
FilterSizeInIntermediateBlocks
- - - - - -中间卷积层中的滤波器大小
3.
(默认)|正奇数的2元向量|正奇数
中间卷积层中的过滤器大小,指定为正奇数整数或正奇数的2元素向量,形式为[高度宽度].中间卷积层是不包括第一层和最后一层的卷积层。当您将筛选器大小指定为标量时,筛选器具有相同的高度和宽度。
ConvolutionPaddingValue
- - - - - -填充样式
“symmetric-exclude-edge”
(默认)|“symmetric-include-edge”
|“复制”
|数字标量
网络中使用的填充样式,指定为这些值之一。
PaddingValue |
描述 | 例子 |
---|---|---|
数字标量 | 用指定的数值填充 |
|
“symmetric-include-edge” |
垫使用输入的镜像值,包括边缘值 |
|
“symmetric-exclude-edge” |
使用输入的镜像值填充,不包括边缘值 |
|
“复制” |
填充使用重复边框元素的输入 |
|
UpsampleMethod
- - - - - -用于向上采样激活的方法
“transposedConv”
(默认)|“bilinearResize”
|“pixelShuffle”
方法用于向上采样激活,指定为以下值之一:
“transposedConv”
-使用transposedConv2dLayer
(深度学习工具箱)大步[2 2]。“bilinearResize”
-使用convolution2dLayer
(深度学习工具箱)一个[11]的步幅,后面跟着一个resize2dLayer
刻度为[2 2]。“pixelShuffle”
-使用convolution2dLayer
(深度学习工具箱)一个[11]的步幅,后面跟着一个depthToSpace2dLayer
块大小为[2 2]。
数据类型:字符
|字符串
ConvolutionWeightsInitializer
- - - - - -卷积层中使用的权重初始化
“他”
(默认)|“glorot”
|“narrow-normal”
|函数
卷积层中使用的权重初始化,指定为“glorot”
,“他”
,“narrow-normal”
,或函数句柄。有关更多信息,请参见指定自定义权重初始化函数(深度学习工具箱).
ActivationLayer
- - - - - -激活函数
“relu”
(默认)|“leakyRelu”
|“elu”
|层对象
在网络中使用的激活函数,除了在第一层和最后一层卷积之后,指定为这些值之一。的unitGenerator
函数在第一个卷积层之后自动添加一个泄漏的ReLU层。有关更多信息和可用层列表,请参见激活层(深度学习工具箱).
“relu”
-使用reluLayer
(深度学习工具箱)“leakyRelu”
-使用leakyReluLayer
(深度学习工具箱)比例系数为0.2“elu”
-使用eluLayer
(深度学习工具箱)一个层对象
SourceFinalActivationLayer
- - - - - -源译码器最终卷积后的激活函数
”“双曲正切
(默认)|“乙状结肠”
|“softmax”
|“没有”
|层对象
源解码器中最后一层卷积后的激活函数,指定为以下值之一。有关更多信息和可用层列表,请参见输出层(深度学习工具箱).
”“双曲正切
-使用tanhLayer
(深度学习工具箱)“乙状结肠”
-使用sigmoidLayer
(深度学习工具箱)“softmax”
-使用softmaxLayer
(深度学习工具箱)“没有”
-不要使用最终激活层一个层对象
TargetFinalActivationLayer
- - - - - -目标译码器最终卷积后的激活函数
”“双曲正切
(默认)|“乙状结肠”
|“softmax”
|“没有”
|层对象
目标解码器中最后一层卷积后的激活函数,指定为以下值之一。有关更多信息和可用层列表,请参见输出层(深度学习工具箱).
”“双曲正切
-使用tanhLayer
(深度学习工具箱)“乙状结肠”
-使用sigmoidLayer
(深度学习工具箱)“softmax”
-使用softmaxLayer
(深度学习工具箱)“没有”
-不要使用最终激活层一个层对象
更多关于
机组发电机网络
UNIT生成器网络由编码器模块中的三个子网络和解码器模块中的三个子网络组成。默认网络遵循Liu、Breuel和Kautz提出的体系结构[1].
编码器模块按2^的因子对输入进行采样NumDownsamplingBlocks
.编码器模块由三个子网组成。
源编码器子网,称为“encoderSourceBlock”,有一个接收源域中数据的初始层块,X年代.然后子网有
NumDownsamplingBlocks
下采样块对数据进行下采样NumResidualBlocks
- - - - - -NumSharedBlocks
残块。目标编码器子网,称为“encoderTargetBlock”,有一个接收目标域中数据的初始层块,X年代.然后子网有
NumDownsamplingBlocks
下采样块对数据进行下采样NumResidualBlocks
- - - - - -NumSharedBlocks
残块。源编码器和目标编码器的输出由一个
concatenationLayer
(深度学习工具箱)共享剩余编码器子网,称为'encoderSharedBlock',接受连接的数据并具有
NumSharedBlocks
残块。
解码器模块由三个子网络组成,共执行NumDownsamplingBlocks
对数据进行上采样操作。
共享剩余解码器子网,称为“decoderSharedBlock”,接受来自编码器的数据,并具有
NumSharedBlocks
残块。源解码器子网络,称为'decoderSourceBlock',具有
NumResidualBlocks
- - - - - -NumSharedBlocks
残块,NumDownsamplingBlocks
下采样块用于对数据进行下采样,最后一个层块用于返回输出。这个子网在源域中返回两个输出:XTS而且X党卫军.输出XTS是从目标域转换到源域的图像。输出X党卫军是从源域到源域的自重构图像。目标解码器子网络,称为'decoderTargetBlock',具有
NumResidualBlocks
- - - - - -NumSharedBlocks
残块,NumDownsamplingBlocks
下采样块用于对数据进行下采样,最后一个层块用于返回输出。这个子网在目标域中返回两个输出:X圣而且XTT.输出XTS是从源域转换到目标域的图像。输出XTT是从目标域到目标域的自重构图像。
该表描述了组成子网的层块。
块类型 | 层 | 默认块示意图 |
---|---|---|
最初的块 |
|
|
将采样块 |
|
|
剩余块 |
|
|
Upsampling块 |
|
|
最后一块 |
|
|
提示
属性可以为UNIT创建鉴别器网络
patchGANDiscriminator
函数。使用定制的训练循环训练UNIT GAN网络。
要执行源图像到目标图像的域转换,反之亦然,请使用
unitPredict
函数。对于共享潜在特征编码,参数
NumSharedBlocks
和"NumResidualBlocks
'必须大于0。
参考文献
[1]刘明宇,Thomas Breuel, Jan Kautz。“无监督图像到图像转换网络。”神经信息处理系统进展30 (NIPS 2017).加州长滩:2017年。https://arxiv.org/abs/1703.00848.
打开举例
Vous possédez une版本modifiée de cet举例。Souhaitez-vous ouvrir cet示例avec vos修改?
对MATLAB
Vous avez cliqué sur un lien qui对应à cette命令MATLAB:
倒exécuter la command, saisissez-la dans la fenêtre de command de MATLAB。Les navigateurs web ne 金宝appsupport pas Les command MATLAB。
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。