assembleNetwork
사전 훈련된 계층에서 딥러닝 신경망 조합
설명
assembleNetwork
는 훈련 없이 계층에서 딥러닝 신경망을 만듭니다.
다음과 같은 작업에 assembleNetwork
를 사용합니다.
계층 배열 또는 계층 그래프를 예측을 실행할 준비가 된 신경망으로 변환합니다.
가져온 계층에서 신경망을 조합합니다.
훈련된 신경망의 가중치를 수정합니다.
신경망을 처음부터 훈련시키려면 trainnet
또는 trainNetwork
함수를 사용하십시오.
는 계층 배열 또는 계층 그래프 assembledNet
= assembleNetwork(layers
)layers
를 예측에 사용할 준비가 된 딥러닝 신경망으로 조합합니다.
예제
사전 훈련된 Keras 계층에서 신경망 조합하기
사전 훈련된 Keras 신경망에서 계층을 가져오고 지원되지 않는 계층을 사용자 지정 계층으로 바꾼 다음 이러한 계층을 예측을 실행할 준비가 된 신경망으로 조합합니다.
Keras 신경망 가져오기
Keras 신경망 모델에서 계층을 가져옵니다. 'digitsDAGnetwithnoise.h5'
의 신경망은 숫자 영상을 분류합니다.
filename = 'digitsDAGnetwithnoise.h5'; lgraph = importKerasLayers(filename,'ImportWeights',true);
Warning: 'importKerasLayers' is not recommended and will be removed in a future release. To import TensorFlow-Keras models, save using the SavedModel format and use importNetworkFromTensorFlow function.
Warning: Unable to import some Keras layers, because they are not supported by the Deep Learning Toolbox. They have been replaced by placeholder layers. To find these layers, call the function findPlaceholderLayers on the returned object.
Keras 신경망은 Deep Learning Toolbox™에서 지원하지 않는 몇몇 계층을 포함합니다. importKerasLayers
함수는 경고를 표시하고 지원되지 않는 계층을 자리 표시자 계층으로 바꿉니다.
자리 표시자 계층 바꾸기
자리 표시자 계층을 바꾸려면 먼저 바꾸려는 계층의 이름을 식별하십시오. findPlaceholderLayers
를 사용하여 자리 표시자 계층을 찾고 Keras 구성을 표시합니다.
placeholderLayers = findPlaceholderLayers(lgraph); placeholderLayers.KerasConfiguration
ans = struct with fields:
trainable: 1
name: 'gaussian_noise_1'
stddev: 1.5000
inbound_nodes: {{1x1 cell}}
ans = struct with fields:
trainable: 1
name: 'gaussian_noise_2'
stddev: 0.7000
inbound_nodes: {{1x1 cell}}
헬퍼 gaussianNoiseLayer
함수를 사용하여 가져온 Keras 계층과 같은 구성을 갖는 가우스 잡음 계층을 2개 만듭니다.
gnLayer1 = gaussianNoiseLayer(1.5,'new_gaussian_noise_1'); gnLayer2 = gaussianNoiseLayer(0.7,'new_gaussian_noise_2');
replaceLayer
를 사용하여 자리 표시자 계층을 사용자 지정 계층으로 바꿉니다.
lgraph = replaceLayer(lgraph,'gaussian_noise_1',gnLayer1); lgraph = replaceLayer(lgraph,'gaussian_noise_2',gnLayer2);
클래스 이름 지정하기
가져온 분류 계층이 클래스를 포함하지 않으므로 신경망을 조합하기 전에 먼저 클래스를 지정해야 합니다. 클래스를 지정하지 않으면 클래스가 자동으로 1
, 2
, ..., N
으로 설정됩니다. 여기서 N
은 클래스의 개수입니다.
분류 계층의 이름은 'ClassificationLayer_activation_1'
입니다. 클래스를 0
, 1
, ..., 9
로 설정한 다음 가져온 분류 계층을 새로운 분류 계층으로 바꿉니다.
cLayer = lgraph.Layers(end);
cLayer.Classes = string(0:9);
lgraph = replaceLayer(lgraph,'ClassificationLayer_activation_1',cLayer);
신경망 조합하기
assembleNetwork
를 사용하여 계층 그래프를 조합합니다. 함수가 예측을 실행할 준비가 된 DAGNetwork
객체를 반환합니다.
net = assembleNetwork(lgraph)
net = DAGNetwork with properties: Layers: [15x1 nnet.cnn.layer.Layer] Connections: [15x2 table] InputNames: {'input_1'} OutputNames: {'ClassificationLayer_activation_1'}
입력 인수
layers
— 신경망 계층
Layer
배열 | LayerGraph
객체
신경망 계층으로, Layer
배열 또는 LayerGraph
객체로 지정됩니다.
모든 계층이 순차적으로 연결된 신경망을 만들려면 입력 인수로 Layer
배열을 사용하면 됩니다. 이 경우, 반환되는 신경망은 SeriesNetwork
객체입니다.
유방향 비순환 그래프(DAG) 신경망은 계층이 여러 개의 입력과 출력을 가질 수 있는 복잡한 구조를 갖습니다. DAG 신경망을 만들려면 신경망 아키텍처를 LayerGraph
객체로 지정한 다음 해당 계층 그래프를 assembleNetwork
에 대한 입력 인수로 사용하십시오.
assembleNetwork
함수는 최대 한 개의 시퀀스 입력 계층을 갖는 신경망을 지원합니다.
내장 계층 목록은 딥러닝 계층 목록 항목을 참조하십시오.
출력 인수
assembledNet
— 조합된 신경망
SeriesNetwork
객체 | DAGNetwork
객체
예측을 실행할 준비가 된 조합된 신경망으로, SeriesNetwork
객체 또는 DAGNetwork
객체로 반환됩니다. 반환되는 신경망은 layers
입력 인수에 따라 다릅니다.
layers
가Layer
배열인 경우,assembledNet
은SeriesNetwork
객체가 됩니다.layers
가LayerGraph
객체인 경우,assembledNet
은DAGNetwork
객체가 됩니다.
버전 내역
R2018b에 개발됨
MATLAB 명령
다음 MATLAB 명령에 해당하는 링크를 클릭했습니다.
명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 MATLAB 명령을 지원하지 않습니다.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)