심층 신경망 디자이너
딥러닝 신경망을 설계하고 시각화합니다
설명
심층 신경망 디자이너 앱을 사용하여 딥러닝 신경망을 가져오고, 구축, 시각화, 편집할 수 있습니다. 이 앱을 사용하여 다음을 수행할 수 있습니다.
신경망을 구축하고 편집하고 결합합니다.
사전 훈련된 신경망을 불러와서 전이 학습에 적합하게 편집합니다.
PyTorch® 및 TensorFlow™에서 신경망을 가져옵니다.
신경망을 분석하여 아키텍처가 올바르게 정의되었는지 확인합니다.
신경망을 분석하여 압축 기법을 사용한 메모리 감소를 확인합니다.
신경망을 Simulink®로 내보냅니다.
신경망을 구축하는 MATLAB® 코드를 생성합니다.

심층 신경망 디자이너 앱 열기
MATLAB 툴스트립: 앱 탭의 머신러닝 및 딥러닝에서 앱 아이콘을 클릭합니다.
MATLAB 명령 프롬프트:
deepNetworkDesigner
를 입력합니다.
예제
숫자형 특징 데이터에 대한 분류 신경망을 만듭니다.
심층 신경망 디자이너를 엽니다.
deepNetworkDesigner
빈 신경망을 만들기 위해 빈 신경망 위에 커서를 올리고 새로 만들기를 클릭합니다. 앱에 빈 캔버스가 열리면 계층을 끌어서 놓습니다.
계층 라이브러리에서 featureInputLayer
를 캔버스 위로 끌어서 놓습니다. 계층 라이브러리 필터를 사용하면 계층을 찾는 데 도움이 됩니다. 계층을 선택합니다. 속성 창에서 Normalization
을 "zscore"
로 설정하고 InputSize
를 데이터의 특징 개수로 설정합니다. 그런 다음 fullyConnectedLayer
를 캔버스 위로 끌어서 놓습니다. 계층을 연결하기 위해 featureInputLayer
위에 커서를 올리고 out
포트를 클릭합니다. 화살표를 fullyConnectedLayer
의 in
포트로 끌어서 놓습니다.
캔버스에 layerNormalizationLayer
와 reluLayer
를 차례로 추가하고 순차적으로 연결합니다.
마지막으로 fullyConnectedLayer
와 softmaxLayer
를 차례로 추가하고 연결합니다. 마지막 fullyConnectedLayer
계층을 선택하고 OutputSize
를 데이터의 클래스 개수로 설정합니다.
계층을 자동으로 정렬하려면 자동 정렬을 클릭합니다.
신경망이 훈련 준비가 되었는지 확인하기 위해 분석을 선택합니다. 딥러닝 신경망 분석기에서 신경망에 경고 또는 오류가 없음을 보여줍니다.
신경망을 작업 공간으로 내보내기 위해 내보내기를 클릭합니다. 신경망을 다시 만드는 코드를 생성하려면 내보내기 > 파라미터를 사용하지 않고 코드 생성하기를 클릭하십시오.
전이 학습을 위해 심층 신경망 디자이너에서 신경망을 편집하여 준비합니다.
전이 학습은 사전 훈련된 딥러닝 신경망이 새로운 작업을 학습하도록 미세 조정하는 과정입니다. 학습된 특징을 보다 적은 개수의 훈련 영상을 사용하여 새로운 작업으로 빠르게 전이할 수 있습니다. 따라서 전이 학습을 사용하는 편이 신경망을 처음부터 훈련시키는 것보다 훨씬 쉽고 빠릅니다. 사전 훈련된 신경망을 전이 학습을 위해 사용하려면 클래스 개수가 새로운 데이터 세트와 일치하도록 변경해야 합니다.
심층 신경망 디자이너는 여러 종류의 사전 훈련된 영상 신경망과 오디오 신경망을 제공합니다. 사전 훈련된 신경망을 탐색하기 위해 심층 신경망 디자이너를 엽니다.
deepNetworkDesigner
이 예에서는 SqueezeNet 위에 커서를 올리고 열기를 클릭합니다.
전이 학습을 위한 신경망을 준비하기 위해 마지막 학습 가능한 계층을 편집합니다. SqueezeNet의 마지막 학습 가능한 계층은 2차원 컨벌루션 계층 'conv10'
입니다.
'conv10'
계층을 선택합니다. 속성 창 하단에서 계층 잠금 해제를 클릭합니다. 계층을 잠금 해제하면 계층의 학습 가능한 파라미터가 모두 삭제됩니다. 나타나는 경고 대화 상자에서 무시하고 잠금 해제를 클릭합니다. 이렇게 하면 계층 속성의 잠금이 해제되어 새 작업에 맞게 계층 속성을 조정할 수 있습니다. NumFilters 속성에서 클래스 개수를 새로 설정합니다.전이된 계층보다 새 계층에서 학습이 더 빨리 이루어지도록 WeightLearnRateFactor 및 BiasLearnRateFactor 값을 10으로 늘려서 학습률을 변경합니다.
R2023b 이전: 새 작업에서 계층 속성을 편집하려면 계층을 잠금 해제하는 대신에 계층을 바꿔야 합니다.
분석을 클릭하여 신경망을 확인합니다. 딥러닝 신경망 분석기에 보고되는 오류가 없으면 신경망이 훈련할 준비가 된 것입니다. 준비된 신경망을 작업 공간으로 내보내기 위해 내보내기를 클릭합니다. 신경망을 만드는 MATLAB 코드를 생성하기 위해 신경망 코드 생성을 클릭하십시오.
새 영상을 분류하도록 신경망을 훈련시키는 방법을 보여주는 예제는 심층 신경망 디자이너를 사용하는 전이 학습을 위해 신경망 준비하기 항목을 참조하십시오.
PyTorch® 또는 TensorFlow™에서 신경망을 가져옵니다.
이 예에서는 MNASNet(Copyright© Soumith Chintala 2016) PyTorch 모델을 가져옵니다. MathWorks 웹사이트에서 약 17MB 크기의 mnasnet1_0
파일을 다운로드합니다.
modelfile = matlab.internal.examples.downloadSupportFile("nnet", ... "data/PyTorchModels/mnasnet1_0.pt");
modelfile = 'C:\Users\jwelding\OneDrive - MathWorks\Documents\MATLAB\Examples\R2025a\supportfiles\nnet\data\PyTorchModels\mnasnet1_0.pt'
외부 플랫폼에서 신경망을 가져오려면 심층 신경망 디자이너를 사용합니다.
deepNetworkDesigner
PyTorch® 또는 TensorFlow™에서 모델을 가져올 수 있습니다.
PyTorch® 모델을 가져오려면 PyTorch에서 아이콘을 클릭합니다. PyTorch 모델 가져오기 대화 상자에서 모델 파일의 위치를 복사한 다음 가져오기를 클릭합니다.
심층 신경망 디자이너를 사용하여 PyTorch 신경망을 가져올 때 신경망의 입력 크기를 지정할 수 있는 옵션이 있습니다. 이 옵션은 입력 크기를 지정했을 때 가져오기가 더 성공적으로 수행될 수 있는 경우에만 사용 가능합니다. 예를 들어 사용자 지정 계층 수를 줄이고자 할 때 사용 가능합니다.
앱이 신경망을 가져오고 가져오기 리포트를 생성합니다. 가져오기 리포트는 훈련 또는 추론에 신경망을 사용하기 전에 주의가 필요한 신경망 문제를 표시합니다. 예를 들어, 앱이 입력 크기를 추론할 수 없거나 미완성된 자리 표시자 계층이 있는 경우 리포트에 경고가 표시됩니다.
PyTorch® 신경망을 심층 신경망 디자이너로 가져오고 문제를 해결하는 방법을 보여주는 예제는 Import PyTorch Model Using Deep Network Designer 항목을 참조하십시오.
훈련된 신경망을 심층 신경망 디자이너에서 Simulink®로 내보냅니다.
심층 신경망 디자이너를 엽니다.
deepNetworkDesigner
Simulink 내보내기에는 다음과 같은 두 가지 유형이 있습니다.
Predict 블록 같은 단일 신경망 블록으로 내보내기
다중 계층 블록으로 내보내기
모든 계층이 계층 블록으로 지원되는 소규모 신경망인 경우에는 계층 블록으로 내보내는 것이 권장됩니다. 대규모 신경망이거나 계층 블록으로 지원되지 않는 계층이 포함된 신경망의 경우에는 단일 신경망 블록으로 내보내는 것이 권장됩니다. 신경망에 계층 블록으로 지원되지 않는 계층이 있는 경우 경고가 표시됩니다.
계층 블록으로 내보내기
이 예에서는 LSTM 위에 커서를 올리고 열기를 클릭합니다. 신경망을 Simulink로 내보내려면 내보내기 > Simulink로 내보내기를 선택하십시오. Simulink로 내보내기 대화 상자에서 내보낼 형식을 다중 계층 블록으로 선택합니다. 신경망 파라미터가 포함된 Simulink 파일을 저장할 위치를 선택한 다음 내보내기를 클릭합니다. 내보내는 동안 신경망이 초기화되지 않은 경우 앱이 신경망의 초기화를 시도합니다.
Simulink 모델이 생성됩니다.
my_model_1
내부를 클릭하여 각 계층 블록을 확인합니다.
계층 블록으로 지원되는 계층 목록은 List of Deep Learning Layer Blocks and Subsystems 항목을 참조하십시오.
신경망 블록으로 내보내기
모델을 단일 신경망 블록으로 내보낼 수도 있습니다. 심층 신경망 디자이너에서 내보낼 형식을 단일 신경망 블록으로 선택합니다. 이 예제에서는 앱이 신경망을 Stateful Predict
블록으로 내보냅니다.
심층 신경망 디자이너 앱을 사용하면 신경망 아키텍처를 다시 만드는 MATLAB® 코드를 생성할 수 있습니다.
신경망의 계층을 초기 파라미터까지 포함하여 다시 만들려면 내보내기 > 신경망 코드 생성을 선택하십시오. 앱은 신경망의 라이브 스크립트를 만들고 초기 파라미터(가중치와 편향)가 포함된 MAT 파일도 만듭니다. 스크립트를 실행하여 MAT 파일에 들어 있는 학습 가능한 파라미터까지 포함된 신경망 계층을 다시 만듭니다. 전이 학습을 수행하려는 경우 이 옵션을 사용하여 가중치를 유지하십시오.
신경망의 계층만 다시 만들려면 내보내기 > 파라미터를 사용하지 않고 신경망 코드 생성하기를 선택하십시오. 이 신경망에는 사전 훈련된 가중치와 같은 초기 파라미터가 포함되어 있지 않습니다.
생성된 스크립트를 실행하면 신경망 아키텍처가 dlnetwork
객체로 반환됩니다 심층 신경망 디자이너에서 내보낸 신경망을 훈련시키는 예제는 심층 신경망 디자이너 시작하기 항목을 참조하십시오 코드 생성에 대한 자세한 내용은 심층 신경망 디자이너에서 MATLAB 코드 생성하기 항목을 참조하십시오.
관련 예제
프로그래밍 방식으로 사용
deepNetworkDesigner
는 심층 신경망 디자이너 앱을 엽니다. 심층 신경망 디자이너가 이미 열려 있으면 deepNetworkDesigner
는 앱으로 포커스를 가져옵니다.
deepNetworkDesigner(
은 심층 신경망 디자이너 앱을 열고 지정된 신경망을 앱으로 불러옵니다. 신경망은 계층으로 구성된 배열이거나 net
)dlnetwork
객체일 수 있습니다. DAGNetwork
또는 SeriesNetwork
객체를 가져오면 앱은 신경망을 dlnetwork
객체로 변환하려고 시도합니다. 자세한 내용은 dag2dlnetwork
항목을 참조하십시오. LayerGraph
객체를 가져오면 앱은 이를 dlnetwork
객체로 변환하려고 시도합니다.
심층 신경망 디자이너가 이미 열려 있으면 deepNetworkDesigner(net)
은 앱으로 포커스를 가져오고 기존 신경망을 추가하거나 바꾸라는 메시지를 표시합니다.
deepNetworkDesigner(___,
은 레거시(R2024a 이전) 버전의 앱을 엽니다. 이 버전은 "-v1"
)DAGNetwork
객체, SeriesNetwork
객체, LayerGraph
객체를 지원합니다. 자세한 내용은 디폴트 동작의 변경 항목을 참조하십시오.
버전 내역
R2018b에 개발됨심층 신경망 디자이너를 사용하여 중첩 계층 내부를 볼 수 있습니다. 예를 들어 이제 NetworkLayer
객체 내부를 볼 수 있습니다. 중첩 계층은 PyTorch, TensorFlow 같은 외부 플랫폼에서 신경망을 가져올 때 흔히 사용됩니다. 중첩 계층 내부를 보려면 해당 계층을 더블 클릭하십시오. 중첩 계층을 갖는 신경망을 빌드, 시각화하고 훈련시키는 방법을 보여주는 예제는 Create and Train Network with Nested Layers 항목을 참조하십시오.
R2025a부터 심층 신경망 디자이너는 기본적으로 NetworkLayer
객체를 사용하여 PyTorch 및 TensorFlow 신경망 컴포지션(network composition)을 나타냅니다. R2025a 이전 릴리스에서는 중첩 사용자 지정 계층을 사용하여 신경망 컴포지션을 나타냅니다.
심층 신경망 디자이너를 사용하여 심층 신경망을 Simulink 계층 블록으로 내보낼 수 있습니다. 그러면 신경망의 계층에 해당하는 블록이 포함된 Simulink 모델이 반환됩니다. 지원되는 계층에 대한 자세한 내용은 List of Deep Learning Layer Blocks and Subsystems 항목을 참조하십시오.
R2025a부터 신경망을 Simulink로 내보낼 경우 신경망 아키텍처에 따라 디폴트 동작이 선택됩니다. 모든 계층이 계층 블록으로 지원되는 경우 디폴트 내보내기 유형은 계층 블록입니다. 그 외의 경우 디폴트 내보내기 유형은 Predict 블록 또는 Stateful Predict 블록 같은 신경망 블록입니다.
R2025a부터 압축을 위한 분석 옵션을 통해 생성된 리포트에 양자화 정보가 포함됩니다.
이제 압축 분석 리포트에는 다음이 포함됩니다.
양자화로 최대한 줄일 수 있는 메모리 양
신경망 계층에 대한 양자화 지원
신경망 압축 기법에 대한 자세한 내용은 Reduce Memory Footprint of Deep Neural Networks 항목을 참조하십시오.
이제 심층 신경망 디자이너에 앱을 사용할 때 사용자 경험을 향상시키는 다음과 같은 몇 가지 기능이 포함되었습니다.
바로 가기 키를 사용하여 대화 상자 확인 또는 무시.
신경망의 내보내기 이름 지정.
앱 내에서 바로 신경망 분석 정보 확인.
이제 심층 신경망 디자이너 시작 페이지에 다층 퍼셉트론(MLP) 신경망에 대한 템플릿이 제공됩니다. 이 템플릿을 사용하여 특징 분류 작업에 적합한 MLP 신경망을 빠르게 만들 수 있습니다.
이제 심층 신경망 디자이너를 사용하여 신경망의 압축 가능성을 분석할 수 있습니다. 예를 들어, 테일러 가지치기 또는 사영을 사용하여 신경망 계층의 메모리를 최대 얼마나 줄일 수 있는지 검사할 수 있습니다.
심층 신경망 디자이너에서 신경망을 엽니다. 그런 다음 압축을 위한 분석을 클릭합니다.
압축 분석 리포트에는 다음에 대한 정보가 들어 있습니다.
최대한 줄일 수 있는 메모리 양
가지치기 및 사영의 지원 여부
신경망 아키텍처가 개별 계층을 가지치기하는 기능에 미치는 영향
계층 메모리
이제 심층 신경망 디자이너 시작 페이지에 1차원 컨벌루션 신경망에 대한 템플릿이 제공됩니다. 템플릿을 사용하여 sequence-to-label 및 sequence-to-sequence 분류 작업에 적합한 1차원 컨벌루션 신경망을 빠르게 만들 수 있습니다.
R2024a부터 심층 신경망 디자이너는 기본적으로 dlnetwork
객체를 만듭니다. DAGNetwork
또는 SeriesNetwork
객체를 가져오면 앱은 신경망을 dlnetwork
객체로 변환하려고 시도합니다. 자세한 내용은 dag2dlnetwork
항목을 참조하십시오. LayerGraph
객체를 가져오면 앱은 이를 dlnetwork
객체로 변환하려고 시도합니다.
dlnetwork
객체는 다음과 같은 여러 이점이 있으며, DAGNetwork
객체, SeriesNetwork
객체 또는 LayerGraph
객체 대신 권장됩니다.
dlnetwork
객체는 신경망 구축, 예측, 기본 제공 훈련, 시각화, 압축, 검증 및 사용자 지정 훈련 루프를 지원하는 통합 데이터형입니다.dlnetwork
객체는 외부 플랫폼에서 만들거나 가져올 수 있는 더 넓은 범위의 신경망 아키텍처를 지원합니다.dlnetwork
객체는trainnet
함수에서 지원되기 때문에 손실 함수를 쉽게 지정할 수 있습니다. 내장 손실 함수 중에서 선택하거나 사용자 지정 손실 함수를 지정할 수 있습니다.일반적으로
dlnetwork
객체를 사용한 훈련과 예측이LayerGraph
와trainNetwork
를 사용하는 워크플로보다 더 빠릅니다.
R2024a 이전의 앱 동작을 복제하려면 "-v1"
플래그를 사용하십시오.
deepNetworkDesigner("-v1") deepNetworkDesigner(net,"-v1")
심층 신경망 디자이너의 동작 비교
권장되지 않음 | 권장됨 |
---|---|
심층 신경망 디자이너의 레거시 버전에서는
| R2024a부터는 심층 신경망 디자이너에서
|
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
웹사이트 선택
번역된 콘텐츠를 보고 지역별 이벤트와 혜택을 살펴보려면 웹사이트를 선택하십시오. 현재 계신 지역에 따라 다음 웹사이트를 권장합니다:
또한 다음 목록에서 웹사이트를 선택하실 수도 있습니다.
사이트 성능 최적화 방법
최고의 사이트 성능을 위해 중국 사이트(중국어 또는 영어)를 선택하십시오. 현재 계신 지역에서는 다른 국가의 MathWorks 사이트 방문이 최적화되지 않았습니다.
미주
- América Latina (Español)
- Canada (English)
- United States (English)
유럽
- 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)