컨벌루션 신경망의 계층 지정하기
다양한 방법으로 딥러닝 모델을 구축하고 사용자 지정할 수 있습니다. 예를 들어 사전 훈련된 모델을 가져와서 조정하거나, 신경망을 처음부터 구축하거나, 딥러닝 모델을 함수로 정의할 수 있습니다.
대부분의 경우, 여러 유형의 딥러닝 모델을 계층으로 구성된 신경망으로 지정한 다음 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 항목을 참조하십시오.
참고 항목
trainnet
| trainingOptions
| dlnetwork