Main Content

connectLayers

신경망에서 계층 연결하기

설명

netUpdated = connectLayers(net,s,d)dlnetwork 객체 net에서 소스 계층 s를 대상 계층 d에 연결합니다. 업데이트된 신경망 netUpdatednet과 동일한 계층을 포함하며 새 연결도 포함합니다.

예제

예제

모두 축소

빈 신경망 dlnetwork 객체를 만들고 입력값이 2개이고 이름이 'add'인 덧셈 계층을 추가합니다.

net = dlnetwork;
layer = additionLayer(2,'Name','add');
net = addLayers(net,layer);

신경망에 2개의 ReLU 계층을 추가하고 덧셈 계층에 연결합니다. 덧셈 계층은 ReLU 계층의 출력값의 합을 출력합니다.

layer = reluLayer('Name','relu1');
net = addLayers(net,layer);
net = connectLayers(net,'relu1','add/in1');

layer = reluLayer('Name','relu2');
net = addLayers(net,layer);
net = connectLayers(net,'relu2','add/in2');

업데이트된 신경망을 플롯으로 시각화합니다.

plot(net)

Figure contains an axes object. The axes object contains an object of type graphplot.

2차원 영상이 입력값으로 주어졌을 때 categorical형 레이블과 숫자형 값을 둘 다 예측하는, 2개 출력값을 갖는 신경망을 정의합니다.

클래스와 응답 변수의 개수를 지정합니다.

numClasses = 10;
numResponses = 1;

빈 신경망을 만듭니다.

net = dlnetwork;

신경망의 기본 분기의 계층과 소프트맥스 출력값을 정의합니다.

layers = [
    imageInputLayer([28 28 1],Normalization="none")

    convolution2dLayer(5,16,Padding="same")
    batchNormalizationLayer
    reluLayer(Name="relu_1")

    convolution2dLayer(3,32,Padding="same",Stride=2)
    batchNormalizationLayer
    reluLayer
    convolution2dLayer(3,32,Padding="same")
    batchNormalizationLayer
    reluLayer

    additionLayer(2,Name="add")

    fullyConnectedLayer(numClasses)
    softmaxLayer(Name="softmax")];

net = addLayers(net,layers);

건너뛰기 연결을 추가합니다.

layers = [
    convolution2dLayer(1,32,Stride=2,Name="conv_skip")
    batchNormalizationLayer
    reluLayer(Name="relu_skip")];

net = addLayers(net,layers);
net = connectLayers(net,"relu_1","conv_skip");
net = connectLayers(net,"relu_skip","add/in2");

회귀 출력값을 위해 완전 연결 계층을 추가합니다.

layers = fullyConnectedLayer(numResponses,Name="fc_2");
net = addLayers(net,layers);
net = connectLayers(net,"add","fc_2");

신경망을 플롯으로 표시합니다.

figure
plot(net)

Figure contains an axes object. The axes object contains an object of type graphplot.

입력 인수

모두 축소

신경망으로, dlnetwork 객체로 지정됩니다.

연결 소스로, 문자형 벡터 또는 string형 스칼라로 지정됩니다.

  • 소스 계층이 1개의 출력값을 갖는 경우, s는 계층의 이름입니다.

  • 소스 계층이 여러 개의 출력값을 갖는 경우, s"layerName/outputName"과 같이 계층 이름과 문자 "/"와 계층 출력값이 결합된 형태의 이름입니다.

예: "conv"

예: "mpool/indices"

연결 대상으로, string형 스칼라 또는 문자형 벡터로 지정됩니다.

  • 대상 계층이 1개의 입력값을 갖는 경우, d는 계층의 이름입니다.

  • 대상 계층이 여러 개의 입력값을 갖는 경우, d"layerName/inputName"과 같이 계층 이름과 문자 "/"와 계층 입력값이 결합된 형태의 이름입니다.

예: "fc"

예: "add/in1"

출력 인수

모두 축소

업데이트된 신경망으로, 초기화되지 않은 dlnetwork 객체로 반환됩니다.

dlnetwork 객체의 학습 가능한 파라미터를 초기화하려면 initialize 함수를 사용하십시오.

connectLayers 함수는 양자화 정보를 유지하지 않습니다. 입력 신경망이 양자화된 신경망인 경우 출력 신경망은 양자화 정보를 포함하지 않습니다.

버전 내역

R2017b에 개발됨

모두 확장