Main Content

컨벌루션 신경망의 계층 지정하기

다양한 방법으로 딥러닝 모델을 구축하고 사용자 지정할 수 있습니다. 예를 들어 사전 훈련된 모델을 가져와서 조정하거나, 신경망을 처음부터 구축하거나, 딥러닝 모델을 함수로 정의할 수 있습니다.

대부분의 경우, 여러 유형의 딥러닝 모델을 계층으로 구성된 신경망으로 지정한 다음 trainnet 함수를 사용하여 훈련시킬 수 있습니다. 계층의 목록과 이들 계층을 만드는 방법은 딥러닝 계층 목록 항목을 참조하십시오.

계층이 직렬로 연결된 단순한 신경망이라면 아키텍처를 계층으로 구성된 배열로 지정할 수 있습니다. 예를 들어, 28×28 회색조 영상을 10개 클래스로 분류하는 신경망을 만들려면 다음과 같이 계층 배열을 지정할 수 있습니다.

layers = [
    imageInputLayer([28 28 1])
    convolution2dLayer(5,20)
    batchNormalizationLayer
    reluLayer
    fullyConnectedLayer(10)
    softmaxLayer];

구조가 더 복잡한 신경망, 예를 들어 분기가 있는 신경망이라면 신경망을 dlnetwork 객체로 지정할 수 있습니다. addLayers 함수를 사용하여 계층을 추가하고 connectLayers 함수를 사용하여 계층을 연결할 수 있습니다. 예를 들어, 224×224 RGB 영상과 64×64 회색조 영상 쌍을 10개의 클래스로 분류하는 다중 입력 신경망을 만들려면 다음과 같이 신경망을 지정할 수 있습니다.

net = dlnetwork;
layers = [
    imageInputLayer([224 224 3])
    convolution2dLayer(5,128)
    batchNormalizationLayer
    reluLayer
    flattenLayer
    concatenationLayer(1,2,Name="cat")
    fullyConnectedLayer(10)
    softmaxLayer];

net = addLayers(net,layers);

layers = [
    imageInputLayer([64 64 1])
    convolution2dLayer(5,128)
    batchNormalizationLayer
    reluLayer
    flattenLayer(Name="flatten2")];

net = addLayers(net,layers);
net = connectLayers(net,"flatten2","cat/in2");
신경망을 플롯으로 표시합니다.
figure
plot(net)

계층 신경망으로 지정할 수 없는 모델의 경우 모델을 함수로 정의할 수 있습니다. 함수로 정의된 딥러닝 모델을 훈련시키는 방법을 보여주는 예제는 Train Network Using Model Function 항목을 참조하십시오.

참고 항목

| |

관련 항목