encoderDecoderNetwork
描述
例子
从编码器和译码器块创建U-Net网络
创建编码器模块四个编码器组成的街区。
encoderBlock = @(块)[convolution2dLayer(3 2 ^(5 +块),“填充”,“相同”)reluLayer convolution2dLayer(3 2 ^(5 +块),“填充”,“相同”)reluLayer maxPooling2dLayer (2“步”,2)];编码器= blockedNetwork (encoderBlock 4“NamePrefix”,“encoder_”);
创建四个译码器的译码器模块组成。
decoderBlock = @(块)[transposedConv2dLayer(2 2 ^ 10(街区),“步”2)convolution2dLayer(2 ^ 10(街区),“填充”,“相同”10)reluLayer convolution2dLayer(2 ^(街区),“填充”,“相同”)reluLayer);解码器= blockedNetwork (decoderBlock 4“NamePrefix”,“decoder_”);
创建层的桥梁。
桥= [convolution2dLayer (1024,“填充”,“相同”)reluLayer convolution2dLayer (1024,“填充”,“相同”)reluLayer dropoutLayer (0.5)];
指定网络输入的大小。
inputSize = (224 224 3);
创建U-Net网络通过连接编码器模块,桥,译码器模块和添加跳过连接。
unet = encoderDecoderNetwork (inputSize,编码器,译码器,…“OutputChannels”3,…“SkipConnections”,“连接”,…“LatentNetwork”桥)
unet = dlnetwork属性:层:[55 x1 nnet.cnn.layer.Layer]连接:[62 x2表]可学的:[46 x3表]状态:[0 x3表]InputNames: {“encoderImageInputLayer”} OutputNames: {“encoderDecoderFinalConvLayer”}初始化:1观点总结总结。
显示网络。
analyzeNetwork (unet)
创建U-Net Pretrained GoogLeNet
创建一个甘编码器网络四个将采样操作从一个pretrained GoogLeNet网络。
深度= 4;[编码器,outputNames] = pretrainedEncoderNetwork (“googlenet”、深度);
确定输入编码器网络的大小。
inputSize = encoder.Layers (1) .InputSize;
确定激活层编码器的输出大小网络通过创建一个示例数据输入,然后调用向前
,它返回激活。
exampleInput = dlarray (0 (inputSize),SSC的);exampleOutput =细胞(1、长度(outputNames));[exampleOutput{}): =前进(exampleInput编码器,“输出”,outputNames);
在译码器模块确定通道的数量在每个激活第三通道的长度。
numChannels = cellfun (@ (x)大小(extractdata (x), 3), exampleOutput);numChannels = fliplr (numChannels (1: end-1));
定义一个函数创建一个数组一个译码器块的层。
decoderBlock = @(块)[transposedConv2dLayer (2, numChannels(块),“步”2)convolution2dLayer (numChannels(块),“填充”,“相同”)reluLayer convolution2dLayer (numChannels(块),“填充”,“相同”)reluLayer);
创建解码器模块与相同数量的upsampling块有downsampling块编码器模块。
解码器= blockedNetwork (decoderBlock、深度);
创建U-Net网络通过连接编码器模块和解码模块和添加跳过连接。
网= encoderDecoderNetwork(224 224 3,编码器,译码器,…“OutputChannels”3,“SkipConnections”,“连接”)
网= dlnetwork属性:层:x1 nnet.cnn.layer.Layer[139]连接:[167 x2表]可学的:[116 x3表]状态:[0 x3表]InputNames:{“数据”}OutputNames: {“encoderDecoderFinalConvLayer”}初始化:1观点总结总结。
显示网络。
analyzeNetwork(净)
输入参数
inputSize
- - - - - -网络输入大小
正整数的转换向量
网络输入大小,指定为正整数的转换向量。inputSize
的形式(HWC),H的高度,W是宽度,C通道的数量。
例子:[28日28日3]
指定一个输入大小三路28-by-28像素的图像。
编码器
- - - - - -编码器网络
dlnetwork
对象
编码器网络,作为一个指定dlnetwork
(深度学习工具箱)对象。
译码器
- - - - - -译码器网络
dlnetwork
对象
译码器网络,作为一个指定dlnetwork
(深度学习工具箱)对象。网络必须要有一个输入和一个输出。
名称-值参数
指定可选的双参数作为Name1 = Value1,…,以=家
,在那里的名字
参数名称和吗价值
相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。
R2021a之前,用逗号来分隔每一个名称和值,并附上的名字
在报价。
例子:“SkipConnections”、“连接”
指定的类型跳过连接编码器和解码器之间的网络连接。
LatentNetwork
- - - - - -网络连接编码器和译码器
[]
(默认)|层对象|层对象的数组
网络连接编码器和解码器,指定为一层或层的数组。
FinalNetwork
- - - - - -网络连接到译码器的输出
[]
(默认)|层对象|层对象的数组
网络连接到译码器的输出,指定为一层或层的数组。如果你指定的OutputChannels
的论点,那么最后1×1卷积后的最终网络连接层的解码器。
OutputChannels
- - - - - -输出通道数
[]
(默认)|正整数
译码器的输出通道网络,指定为一个正整数。如果你指定这个参数,那么最后一层的解码器执行1×1卷积操作指定数量的渠道。
SkipConnectionNames
- - - - - -对编码器/解码器图层的名称
“汽车”
(默认)|米2字符串数组
名字对编码器/解码器层的激活被跳过合并连接,指定为其中一个值。
“汽车”
- - -encoderDecoderNetwork
函数决定的名字对编码器/解码器自动层。米2字符串数组,第一列是编码器层和第二列的名称是各自的名字译码器层。
当你指定的SkipConnections
的参数“没有”
,encoderDecoderNetwork
函数忽略了值的SkipConnectionNames
”。
数据类型:字符
|字符串
SkipConnections
- - - - - -跳过连接类型
“没有”
(默认)|“汽车”
|“连接”
类型的跳过编码器和解码器之间的联系网络,指定为“没有”
,“汽车”
,或“连接”
。
数据类型:字符
|字符串
版本历史
介绍了R2021a
MATLAB命令
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。金宝app
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。