嗨,米尔科
Prezioso
,
连接的输入可选分支的输入新定义的层,您可以简单地添加一个单独的输入层嵌套层的定义,然后输入层连接到现有网络的第一层。我们可以定义一个单独的输入层使用
imageInputLayer
(
)
与
适当的输入
大小和名称。然后定义了内部网络和可选skip-connection
类似的方式
MATLAB中的示例文档。下面是一个示例实现。
%示例实现
函数层= nestedConvBlock (numFilters includeSkipConvolution步)
%定义内部网络
convBlock = [
numFilters convolution2dLayer(3日,“填充”,“相同”,“步”步)
batchNormalizationLayer
reluLayer
numFilters convolution2dLayer(3日,“填充”,“相同”)
batchNormalizationLayer];
%定义可选skip-connection
如果includeSkipConvolution
skipConvolution = [
numFilters convolution2dLayer (1,“步”步,“名字”,“skipConv”)
batchNormalizationLayer (“名字”,“bnSkip”));
结束
%定义的嵌套层输入连接
input_layer = imageInputLayer ([32 32 3],“名字”,“输入”);
output_layer = convolution2dLayer (3 16“填充”,“相同”);
lgraph = layerGraph (input_layer);
lgraph = addLayers (lgraph convBlock);
lgraph = connectLayers (lgraph,“输入”,“convBlock /”);
如果includeSkipConnection
lgraph = addLayers (lgraph skipConvolution);
lgraph = connectLayers (lgraph,“输入”,“skipConv /”);
lgraph = connectLayers (lgraph,“convBlock / bn_2”,“skipConv / bnSkip”);
lgraph = connectLayers (lgraph,“convBlock / bn_2”,“总和/ in2”);
层= dlnetwork (lgraph,“OutputNames”,“和”);
其他的
lgraph = connectLayers (lgraph,“convBlock / bn_2”,“添加/ in2”);
层= dlnetwork (lgraph,“OutputNames”,“添加”);
结束
记住,这只是一种可选分支的输入连接到一个嵌套深度学习的输入层。
根据您的实现的细节,在那里
可能是其他的方法可以做到这一点。