Main Content

trainNetwork

(권장되지 않음) 신경망 훈련

trainNetwork는 권장되지 않습니다. 대신 trainnet 함수를 사용하십시오. 자세한 내용은 버전 내역을 참조하십시오.

설명

net = trainNetwork(images,layers,options)images로 지정된 영상과 응답 변수 및 options로 정의된 훈련 옵션을 사용하여 영상 분류 및 회귀 작업에 대해 layers로 지정된 신경망을 훈련시킵니다.

net = trainNetwork(images,responses,layers,options)images로 지정된 영상과 responses로 지정된 응답 변수를 사용하여 훈련시킵니다.

net = trainNetwork(sequences,layers,options)sequences로 지정된 시퀀스와 응답 변수를 사용하여 시퀀스 또는 시계열의 분류 및 회귀 작업(예: LSTM 또는 GRU 신경망)에 대해 신경망을 훈련시킵니다.

예제

net = trainNetwork(sequences,responses,layers,options)sequences로 지정된 시퀀스와 responses로 지정된 응답 변수를 사용하여 훈련시킵니다.

net = trainNetwork(features,layers,options)features로 지정된 특징 데이터와 응답 변수를 사용하여 특징 분류 또는 회귀 작업(예: 다층 퍼셉트론(MLP) 신경망)에 대해 신경망을 훈련시킵니다.

net = trainNetwork(features,responses,layers,options)features로 지정된 특징 데이터와 responses로 지정된 응답 변수를 사용하여 훈련시킵니다.

net = trainNetwork(mixed,layers,options)mixed로 지정된 데이터와 응답 변수를 사용하여 혼합된 데이터형의 입력값을 여러 개 갖는 신경망을 훈련시킵니다.

[net,info] = trainNetwork(___)는 위에 열거된 구문 중 하나를 사용하여 훈련에 대한 정보도 반환합니다.

예제

모두 축소

sequence-to-label 분류를 위해 딥러닝 LSTM 신경망을 훈련시킵니다.

WaveformData.mat에서 예제 데이터를 불러옵니다. 이 데이터는 시퀀스로 구성된 numObservations×1 셀형 배열이며, 여기서 numObservations는 시퀀스 개수입니다. 각 시퀀스는 numChannels×-numTimeSteps 숫자형 배열이며, 여기서 numChannels는 시퀀스의 채널 개수이고 numTimeSteps는 시퀀스의 시간 스텝 개수입니다.

load WaveformData

시퀀스 중 일부를 플롯으로 시각화합니다.

numChannels = size(data{1},1);

idx = [3 4 5 12];
figure
tiledlayout(2,2)
for i = 1:4
    nexttile
    stackedplot(data{idx(i)}', ...
        DisplayLabels="Channel " + string(1:numChannels))
    
    xlabel("Time Step")
    title("Class: " + string(labels(idx(i))))
end

테스트를 위해 데이터를 남겨 둡니다. 데이터의 90%가 포함된 훈련 세트와 데이터의 나머지 10%가 포함된 테스트 세트로 데이터를 분할합니다. 데이터를 분할하려면 이 예제에 지원 파일로 첨부된 trainingPartitions 함수를 사용합니다. 이 파일에 액세스하려면 이 예제를 라이브 스크립트로 여십시오.

numObservations = numel(data);
[idxTrain,idxTest] = trainingPartitions(numObservations, [0.9 0.1]);
XTrain = data(idxTrain);
TTrain = labels(idxTrain);

XTest = data(idxTest);
TTest = labels(idxTest);

LSTM 신경망 아키텍처를 정의합니다. 입력 크기를 입력 데이터의 채널 개수로 지정합니다. 은닉 유닛 120개를 포함하고 시퀀스의 마지막 요소를 출력하는 LSTM 계층을 지정합니다. 마지막으로, 출력 크기가 클래스 개수와 일치하는 완전 연결 계층을 포함하고 그 뒤에 소프트맥스 계층과 분류 계층을 포함합니다.

numHiddenUnits = 120;
numClasses = numel(categories(TTrain));

layers = [ ...
    sequenceInputLayer(numChannels)
    lstmLayer(numHiddenUnits,OutputMode="last")
    fullyConnectedLayer(numClasses)
    softmaxLayer
    classificationLayer]
layers = 
  5×1 Layer array with layers:

     1   ''   Sequence Input          Sequence input with 3 dimensions
     2   ''   LSTM                    LSTM with 120 hidden units
     3   ''   Fully Connected         4 fully connected layer
     4   ''   Softmax                 softmax
     5   ''   Classification Output   crossentropyex

훈련 옵션을 지정합니다. Adam 솔버에 학습률을 0.01로, 기울기 임계값을 1로 설정하여 훈련시킵니다. 최대 Epoch 횟수를 150으로 설정하고 모든 Epoch를 섞습니다. 기본적으로 사용 가능한 GPU가 있으면 GPU에서 훈련시킵니다. GPU를 사용하려면 Parallel Computing Toolbox™와 지원되는 GPU 장치가 필요합니다. 지원되는 장치에 대한 자세한 내용은 GPU 연산 요구 사항 (Parallel Computing Toolbox) 항목을 참조하십시오.

options = trainingOptions("adam", ...
    MaxEpochs=150, ...
    InitialLearnRate=0.01,...
    Shuffle="every-epoch", ...
    GradientThreshold=1, ...
    Verbose=false, ...
    Plots="training-progress");

지정된 훈련 옵션으로 LSTM 신경망을 훈련시킵니다.

net = trainNetwork(XTrain,TTrain,layers,options);

테스트 데이터를 분류합니다. 훈련에 사용된 것과 동일하게 미니 배치 크기를 지정합니다.

YTest = classify(net,XTest);

예측의 분류 정확도를 계산합니다.

acc = mean(YTest == TTest)
acc = 0.8400

분류 결과를 혼동행렬 차트로 표시합니다.

figure
confusionchart(TTest,YTest)

입력 인수

모두 축소

영상 데이터로, 다음 중 하나로 지정됩니다.

데이터 유형설명대표적인 사용법
데이터저장소ImageDatastore디스크에 저장된 영상의 데이터저장소.

디스크에 저장된 같은 크기의 영상들을 사용하여 영상 분류 신경망을 훈련시킵니다.

영상 크기가 서로 다른 경우 AugmentedImageDatastore 객체를 사용하십시오.

ImageDatastore 객체는 영상 분류 작업만 지원합니다. 회귀 신경망에 영상 데이터저장소를 사용하려면 각각 transform 함수를 사용하여 영상과 응답 변수를 포함하는 변환된 데이터저장소를 만들거나 combine 함수를 사용하여 영상과 응답 변수를 포함하는 결합된 데이터저장소를 만드십시오.

AugmentedImageDatastore크기 조정, 회전, 반사, 전단, 평행 이동을 비롯한 무작위 아핀 기하 변환을 적용하는 데이터저장소.

  • 디스크에 저장된 서로 다른 크기의 영상들을 사용하여 영상 분류 신경망을 훈련시킵니다.

  • 영상 분류 신경망을 훈련시키고 증대를 통해 새 데이터를 생성합니다.

TransformedDatastore사용자 지정 변환 함수를 사용하여 기본 데이터저장소에서 읽어 들인 데이터 배치를 변환하는 데이터저장소.

  • 영상 회귀 신경망을 훈련시킵니다.

  • 여러 개의 입력값을 갖는 신경망을 훈련시킵니다.

  • trainNetwork 함수에서 지원하지 않는 출력값을 가진 데이터저장소를 변환합니다.

  • 데이터저장소 출력값에 사용자 지정 변환을 적용합니다.

CombinedDatastore둘 이상의 기본 데이터저장소에서 읽어 들인 데이터저장소.

  • 영상 회귀 신경망을 훈련시킵니다.

  • 여러 개의 입력값을 갖는 신경망을 훈련시킵니다.

  • 서로 다른 데이터 소스의 예측 변수와 응답 변수를 결합합니다.

PixelLabelImageDatastore (Computer Vision Toolbox)영상과 그 대응되는 픽셀 레이블에 동일한 아핀 기하 변환을 적용하는 데이터저장소.의미론적 분할을 위해 신경망을 훈련시킵니다.
RandomPatchExtractionDatastore (Image Processing Toolbox)영상 또는 픽셀 레이블 영상으로부터 임의 부분의 쌍을 추출하고 선택적으로 이러한 부분의 쌍에 동일한 무작위 아핀 기하 변환을 적용하는 데이터저장소.객체 검출을 위해 신경망을 훈련시킵니다.
DenoisingImageDatastore (Image Processing Toolbox)무작위로 생성된 가우스 잡음을 적용하는 데이터저장소.영상 잡음 제거를 위해 신경망을 훈련시킵니다.
사용자 지정 미니 배치 데이터저장소데이터의 미니 배치를 반환하는 사용자 지정 데이터저장소.

다른 데이터저장소에서 지원하지 않는 형식의 데이터를 사용하여 신경망을 훈련시킵니다.

자세한 내용은 Develop Custom Mini-Batch Datastore 항목을 참조하십시오.

숫자형 배열영상으로, 숫자형 배열로 지정됩니다. 영상을 숫자형 배열로 지정하는 경우 responses 인수도 지정해야 합니다.메모리에 맞고 증대와 같은 추가 처리가 필요하지 않은 데이터를 사용하여 신경망을 훈련시킵니다.
테이블영상으로, 테이블로 지정됩니다. 영상을 테이블로 지정하는 경우 responses 인수를 사용하여 응답 변수가 포함된 열을 지정할 수도 있습니다.테이블에 저장된 데이터를 사용하여 신경망을 훈련시킵니다.

여러 개의 입력값을 갖는 신경망의 경우, 데이터저장소는 TransformedDatastore 객체이거나 CombinedDatastore 객체여야 합니다.

비디오 데이터와 같은 영상 시퀀스의 경우 sequences 입력 인수를 사용하십시오.

데이터저장소

데이터저장소는 영상 및 응답 변수의 미니 배치를 읽어 들입니다. 데이터저장소는 메모리에 맞지 않는 데이터가 있거나 데이터에 증대 또는 변환을 적용하려는 경우에 가장 적합합니다.

다음 목록에는 영상 데이터에 대해 trainNetwork와 직접 호환되는 데이터저장소가 나열되어 있습니다.

예를 들어 imageDatastore 함수를 사용하여 영상 데이터저장소를 만들고 'LabelSource' 옵션을 'foldernames'로 설정하여 영상이 들어 있는 폴더의 이름을 레이블로 사용합니다. 또는 영상 데이터저장소의 Labels 속성을 사용하여 레이블을 직접 지정할 수도 있습니다.

딥러닝을 위해 영상을 효율적으로 전처리하려면(영상 크기 조정 포함) augmentedImageDatastore를 사용하십시오. ImageDatastore 객체의 ReadFcn 옵션을 사용하지 마십시오.

ImageDatastore는 프리페치 작업을 사용한 JPG 또는 PNG 영상 파일의 배치 읽기를 허용합니다. ReadFcn 옵션을 사용자 지정 함수로 설정하는 경우, ImageDatastore는 프리페치를 수행하지 않고 일반적으로 상당히 느립니다.

transform 함수와 combine 함수를 사용하여 딥러닝 신경망 훈련을 위해 다른 내장 데이터저장소를 사용할 수 있습니다. 이러한 함수는 데이터저장소에서 읽어 들인 데이터를 trainNetwork에 필요한 형식으로 변환할 수 있습니다.

여러 개의 입력값을 갖는 신경망의 경우, 데이터저장소는 TransformedDatastore 객체이거나 CombinedDatastore 객체여야 합니다.

데이터저장소 출력값의 필요한 형식은 신경망 아키텍처에 따라 달라집니다.

신경망 아키텍처데이터저장소 출력값출력값의 예
하나의 입력 계층

두 개의 열로 구성된 테이블 또는 셀형 배열.

첫 번째 열과 두 번째 열은 각각 예측 변수와 목표값을 지정합니다.

테이블 요소는 스칼라 또는 행 벡터이거나 숫자형 배열을 포함하는 1×1 셀형 배열이어야 합니다.

사용자 지정 미니 배치 데이터저장소는 테이블을 출력해야 합니다.

1개의 입력값과 1개의 출력값을 갖는 신경망에 대한 테이블:

data = read(ds)
data =

  4×2 table

        Predictors        Response
    __________________    ________

    {224×224×3 double}       2    
    {224×224×3 double}       7    
    {224×224×3 double}       9    
    {224×224×3 double}       9  

1개의 입력값과 1개의 출력값을 갖는 신경망에 대한 셀형 배열:

data = read(ds)
data =

  4×2 cell array

    {224×224×3 double}    {[2]}
    {224×224×3 double}    {[7]}
    {224×224×3 double}    {[9]}
    {224×224×3 double}    {[9]}

여러 개의 입력 계층

(numInputs + 1)개의 열로 구성된 셀형 배열로, 여기서 numInputs는 신경망 입력값의 개수입니다.

처음 numInputs개의 열은 각 입력값에 대한 예측 변수를 지정하고 마지막 열은 목표값을 지정합니다.

입력값의 순서는 계층 그래프 layersInputNames 속성으로 지정됩니다.

2개의 입력값과 1개의 출력값을 갖는 신경망에 대한 셀형 배열.

data = read(ds)
data =

  4×3 cell array

    {224×224×3 double}    {128×128×3 double}    {[2]}
    {224×224×3 double}    {128×128×3 double}    {[2]}
    {224×224×3 double}    {128×128×3 double}    {[9]}
    {224×224×3 double}    {128×128×3 double}    {[9]}

예측 변수의 형식은 데이터의 유형에 따라 달라집니다.

데이터형식
2차원 영상

h×w×c 숫자형 배열로, 여기서 h, w, c는 각각 영상의 높이, 너비, 채널 개수입니다.

3차원 영상h×w×d×c 숫자형 배열로, 여기서 h, w, d, c는 각각 영상의 높이, 너비, 깊이, 채널 개수입니다.

테이블로 반환되는 예측 변수의 경우, 요소는 숫자형 스칼라 또는 숫자형 행 벡터를 포함하거나 숫자형 배열을 포함하는 1×1 셀형 배열을 포함해야 합니다.

응답 변수의 형식은 작업의 유형에 따라 달라집니다.

작업응답 변수 형식
영상 분류categorical형 스칼라
영상 회귀
  • 숫자형 스칼라

  • 숫자형 벡터

  • 2차원 영상을 나타내는 3차원 숫자형 배열

  • 3차원 영상을 나타내는 4차원 숫자형 배열

테이블로 반환되는 응답 변수의 경우, 요소는 categorical형 스칼라, 숫자형 스칼라 또는 숫자형 행 벡터이거나 숫자형 배열을 포함하는 1×1 셀형 배열이어야 합니다.

자세한 내용은 Datastores for Deep Learning 항목을 참조하십시오.

숫자형 배열

메모리에 맞고 증대와 같은 추가 처리가 필요하지 않은 데이터의 경우 영상 데이터 세트를 숫자형 배열로 지정할 수 있습니다. 영상을 숫자형 배열로 지정하는 경우 responses 인수도 지정해야 합니다.

숫자형 배열의 크기와 형태는 영상 데이터의 유형에 따라 달라집니다.

데이터형식
2차원 영상

h×w×c×N 숫자형 배열로, 여기서 h, w, c는 각각 영상의 높이, 너비, 채널 개수이고 N은 영상 개수입니다.

3차원 영상h×w×d×c×N 숫자형 배열로, 여기서 h, w, d, c는 각각 영상의 높이, 너비, 깊이, 채널 개수이고 N은 영상 개수입니다.

테이블

데이터저장소 또는 숫자형 배열의 대안으로 테이블에 영상 및 응답 변수를 지정할 수도 있습니다. 영상을 테이블로 지정하는 경우 responses 인수를 사용하여 응답 변수가 포함된 열을 지정할 수도 있습니다.

테이블에 영상과 응답 변수를 지정할 때 테이블의 각 행은 관측값 하나에 대응됩니다.

영상 입력의 경우 예측 변수는 다음 중 하나로 지정된 테이블의 첫 번째 열에 있어야 합니다.

  • 영상에 대한 상대 또는 절대 파일 경로로, 문자형 벡터로 지정됩니다.

  • 2차원 영상을 나타내는 h×w×c 숫자형 배열을 포함하는 1×1 셀형 배열로, 여기서 h, w 및 c는 각각 영상의 높이, 너비, 채널의 개수입니다.

응답 변수의 형식은 작업의 유형에 따라 달라집니다.

작업응답 변수 형식
영상 분류categorical형 스칼라
영상 회귀
  • 숫자형 스칼라

  • 스칼라 값으로 구성된 2개 이상의 열

  • 2차원 영상을 나타내는 h×w×c 숫자형 배열을 포함하는 1×1 셀형 배열

  • 3차원 영상을 나타내는 h×w×d×c 숫자형 배열을 포함하는 1×1 셀형 배열

영상 입력값을 갖는 신경망의 경우, responses를 지정하지 않으면 함수는 기본적으로 tbl의 첫 번째 열을 예측 변수용으로 사용하고 뒤에 오는 열을 응답 변수용으로 사용합니다.

  • 예측 변수 또는 응답 변수에 NaN이 포함되어 있는 경우, 훈련 중에 이 값이 신경망 끝까지 전파됩니다. 이러한 경우 일반적으로 훈련이 수렴하지 않습니다.

  • 회귀 작업의 경우, 응답 변수를 정규화하면 회귀를 위한 신경망 훈련을 안정화하고 속도를 높이는 데 도움이 되는 경우가 많습니다. 자세한 내용은 회귀를 위해 컨벌루션 신경망 훈련시키기 항목을 참조하십시오.

  • 이 인수는 복소수 값 예측 변수를 지원합니다. trainNetwork 함수를 사용하여 복소수 값 예측 변수를 갖는 신경망을 훈련시키려면 입력 계층의 SplitComplexInputs 옵션이 1(true)이어야 합니다.

시퀀스 또는 시계열 데이터로, 다음 중 하나로 지정됩니다.

데이터 유형설명대표적인 사용법
데이터저장소TransformedDatastore사용자 지정 변환 함수를 사용하여 기본 데이터저장소에서 읽어 들인 데이터 배치를 변환하는 데이터저장소.

  • trainNetwork 함수에서 지원하지 않는 출력값을 가진 데이터저장소를 변환합니다.

  • 데이터저장소 출력값에 사용자 지정 변환을 적용합니다.

CombinedDatastore둘 이상의 기본 데이터저장소에서 읽어 들인 데이터저장소.

서로 다른 데이터 소스의 예측 변수와 응답 변수를 결합합니다.

사용자 지정 미니 배치 데이터저장소데이터의 미니 배치를 반환하는 사용자 지정 데이터저장소.

다른 데이터저장소에서 지원하지 않는 형식의 데이터를 사용하여 신경망을 훈련시킵니다.

자세한 내용은 Develop Custom Mini-Batch Datastore 항목을 참조하십시오.

숫자형 또는 셀형 배열숫자형 배열로 지정된 단일 시퀀스 또는 숫자형 배열로 구성된 셀형 배열로 지정된 시퀀스 데이터 세트. 시퀀스를 숫자형 배열 또는 셀형 배열로 지정하는 경우 responses 인수도 지정해야 합니다.메모리에 맞고 사용자 지정 변환과 같은 추가 처리가 필요하지 않은 데이터를 사용하여 신경망을 훈련시킵니다.

데이터저장소

데이터저장소는 시퀀스 및 응답 변수의 미니 배치를 읽어 들입니다. 데이터저장소는 메모리에 맞지 않는 데이터가 있거나 데이터에 변환을 적용하려는 경우에 가장 적합합니다.

다음 목록에는 시퀀스 데이터에 대해 trainNetwork와 직접 호환되는 데이터저장소가 나열되어 있습니다.

transform 함수와 combine 함수를 사용하여 딥러닝 신경망 훈련을 위해 다른 내장 데이터저장소를 사용할 수 있습니다. 이러한 함수는 데이터저장소에서 읽어 들인 데이터를 trainNetwork에 필요한 테이블 또는 셀형 배열 형식으로 변환할 수 있습니다. 예를 들어, 각각 ArrayDatastore 객체 및 TabularTextDatastore 객체를 사용하여 메모리 내 배열 및 CSV 파일에서 읽어 들인 데이터를 변환하고 결합할 수 있습니다.

데이터저장소는 데이터를 테이블 또는 셀형 배열로 반환해야 합니다. 사용자 지정 미니 배치 데이터저장소는 테이블을 출력해야 합니다.

데이터저장소 출력값출력값의 예
테이블
data = read(ds)
data =

  4×2 table

        Predictors        Response
    __________________    ________

    {12×50 double}           2    
    {12×50 double}           7    
    {12×50 double}           9    
    {12×50 double}           9  
셀형 배열
data = read(ds)
data =

  4×2 cell array

    {12×50 double}        {[2]}
    {12×50 double}        {[7]}
    {12×50 double}        {[9]}
    {12×50 double}        {[9]}

예측 변수의 형식은 데이터의 유형에 따라 달라집니다.

데이터예측 변수의 형식
벡터 시퀀스

c×s 행렬로, 여기서 c는 시퀀스의 특징 개수이고, s는 시퀀스 길이입니다.

1차원 영상 시퀀스

h×c×s 배열로, 여기서 h, c는 각각 영상의 높이와 채널 개수이고, s는 시퀀스 길이입니다.

미니 배치의 각 시퀀스는 시퀀스 길이가 같아야 합니다.

2차원 영상 시퀀스

h×w×c×s 배열로, 여기서 h, w, c는 각각 영상의 높이, 너비, 채널 개수이고, s는 시퀀스 길이입니다.

미니 배치의 각 시퀀스는 시퀀스 길이가 같아야 합니다.

3차원 영상 시퀀스

h×w×d×c×s 배열로, 여기서 h, w, d, c는 각각 영상의 높이, 너비, 깊이, 채널 개수이고, s는 시퀀스 길이입니다.

미니 배치의 각 시퀀스는 시퀀스 길이가 같아야 합니다.

테이블로 반환되는 예측 변수의 경우, 요소는 숫자형 스칼라 또는 숫자형 행 벡터를 포함하거나 숫자형 배열을 포함하는 1×1 셀형 배열을 포함해야 합니다.

응답 변수의 형식은 작업의 유형에 따라 달라집니다.

작업응답 변수의 형식
sequence-to-label 분류categorical형 스칼라
sequence-to-one 회귀

스칼라

sequence-to-vector 회귀

숫자형 행 벡터

sequence-to-sequence 분류

  • categorical형 레이블로 구성된 1×s 시퀀스로, 여기서 s는 대응되는 예측 변수 시퀀스의 시퀀스 길이입니다.

  • categorical형 레이블로 구성된 h×w×s 시퀀스로, 여기서 h, w, s는 각각 대응되는 예측 변수 시퀀스의 높이, 너비, 시퀀스 길이입니다.

  • categorical형 레이블로 구성된 h×w×d×s 시퀀스로, 여기서 h, w, d, s는 각각 대응되는 예측 변수 시퀀스의 높이, 너비, 깊이, 시퀀스 길이입니다.

미니 배치의 각 시퀀스는 시퀀스 길이가 같아야 합니다.

sequence-to-sequence 회귀
  • R×s 행렬로, 여기서 R은 응답 변수의 개수이고, s는 대응되는 예측 변수 시퀀스의 시퀀스 길이입니다.

  • h×w×R×s 숫자형 응답 변수의 시퀀스로, 여기서 R은 응답 변수의 개수이고, h, w, s는 각각 대응되는 예측 변수 시퀀스의 높이, 너비, 시퀀스 길이입니다.

  • h×w×d×R×s 숫자형 응답 변수의 시퀀스로, 여기서 R은 응답 변수의 개수이고, h, w, d, s는 각각 대응되는 예측 변수 시퀀스의 높이, 너비, 깊이, 시퀀스 길이입니다.

미니 배치의 각 시퀀스는 시퀀스 길이가 같아야 합니다.

테이블로 반환되는 응답 변수의 경우, 요소는 categorical형 스칼라, 숫자형 스칼라 또는 숫자형 행 벡터이거나 숫자형 배열을 포함하는 1×1 셀형 배열이어야 합니다.

자세한 내용은 Datastores for Deep Learning 항목을 참조하십시오.

숫자형 또는 셀형 배열

메모리에 맞고 사용자 지정 변환과 같은 추가 처리가 필요하지 않은 데이터의 경우 단일 시퀀스를 숫자형 배열로 지정하거나 시퀀스 데이터 세트를 숫자형 배열로 구성된 셀형 배열로 지정할 수 있습니다. 시퀀스를 셀형 배열 또는 숫자형 배열로 지정하는 경우 responses 인수도 지정해야 합니다.

셀형 배열 입력값의 경우 셀형 배열은 숫자형 배열로 구성된 N×1 셀형 배열이어야 합니다. 여기서 N은 관측값의 개수입니다. 시퀀스를 나타내는 숫자형 배열의 크기와 형태는 시퀀스 데이터의 유형에 따라 달라집니다.

입력설명
벡터 시퀀스c×s 행렬. 여기서 c는 시퀀스의 특징 개수이고 s는 시퀀스 길이입니다.
1차원 영상 시퀀스h×c×s 배열. 여기서 h, c는 각각 영상의 높이, 채널 개수이고 s는 시퀀스 길이입니다.
2차원 영상 시퀀스h×w×c×s 배열. 여기서 h, w, c는 영상의 높이, 너비, 채널 개수이고 s는 시퀀스 길이입니다.
3차원 영상 시퀀스h×w×d×c×s 배열. 여기서 h, w, d, c는 3차원 영상의 높이, 너비, 깊이, 채널 개수이고 s는 시퀀스 길이입니다.

trainNetwork 함수는 최대 한 개의 시퀀스 입력 계층을 갖는 신경망을 지원합니다.

  • 예측 변수 또는 응답 변수에 NaN이 포함되어 있는 경우, 훈련 중에 이 값이 신경망 끝까지 전파됩니다. 이러한 경우 일반적으로 훈련이 수렴하지 않습니다.

  • 회귀 작업의 경우, 응답 변수를 정규화하면 훈련을 안정화하고 속도를 높이는 데 도움이 되는 경우가 많습니다. 자세한 내용은 회귀를 위해 컨벌루션 신경망 훈련시키기 항목을 참조하십시오.

  • 이 인수는 복소수 값 예측 변수를 지원합니다. trainNetwork 함수를 사용하여 복소수 값 예측 변수를 갖는 신경망을 훈련시키려면 입력 계층의 SplitComplexInputs 옵션이 1(true)이어야 합니다.

특징 데이터로, 다음 중 하나로 지정됩니다.

데이터 유형설명대표적인 사용법
데이터저장소TransformedDatastore사용자 지정 변환 함수를 사용하여 기본 데이터저장소에서 읽어 들인 데이터 배치를 변환하는 데이터저장소.

  • 여러 개의 입력값을 갖는 신경망을 훈련시킵니다.

  • trainNetwork 함수에서 지원하지 않는 출력값을 가진 데이터저장소를 변환합니다.

  • 데이터저장소 출력값에 사용자 지정 변환을 적용합니다.

CombinedDatastore둘 이상의 기본 데이터저장소에서 읽어 들인 데이터저장소.

  • 여러 개의 입력값을 갖는 신경망을 훈련시킵니다.

  • 서로 다른 데이터 소스의 예측 변수와 응답 변수를 결합합니다.

사용자 지정 미니 배치 데이터저장소데이터의 미니 배치를 반환하는 사용자 지정 데이터저장소.

다른 데이터저장소에서 지원하지 않는 형식의 데이터를 사용하여 신경망을 훈련시킵니다.

자세한 내용은 Develop Custom Mini-Batch Datastore 항목을 참조하십시오.

테이블특징 데이터로, 테이블로 지정됩니다. 특징을 테이블로 지정하는 경우 responses 인수를 사용하여 응답 변수가 포함된 열을 지정할 수도 있습니다.테이블에 저장된 데이터를 사용하여 신경망을 훈련시킵니다.
숫자형 배열특징 데이터로, 숫자형 배열로 지정됩니다. 특징을 숫자형 배열로 지정하는 경우 responses 인수도 지정해야 합니다.메모리에 맞고 사용자 지정 변환과 같은 추가 처리가 필요하지 않은 데이터를 사용하여 신경망을 훈련시킵니다.

데이터저장소

데이터저장소는 특징 데이터 및 응답 변수의 미니 배치를 읽어 들입니다. 데이터저장소는 메모리에 맞지 않는 데이터가 있거나 데이터에 변환을 적용하려는 경우에 가장 적합합니다.

다음 표에는 특징 데이터에 대해 trainNetwork와 직접 호환되는 데이터저장소가 나열되어 있습니다.

transform 함수와 combine 함수를 사용하여 딥러닝 신경망 훈련을 위해 다른 내장 데이터저장소를 사용할 수 있습니다. 이러한 함수는 데이터저장소에서 읽어 들인 데이터를 trainNetwork에 필요한 테이블 또는 셀형 배열 형식으로 변환할 수 있습니다. 자세한 내용은 Datastores for Deep Learning 항목을 참조하십시오.

여러 개의 입력값을 갖는 신경망의 경우, 데이터저장소는 TransformedDatastore 객체이거나 CombinedDatastore 객체여야 합니다.

데이터저장소는 데이터를 테이블 또는 셀형 배열로 반환해야 합니다. 사용자 지정 미니 배치 데이터저장소는 테이블을 출력해야 합니다. 데이터저장소 출력값의 형식은 신경망 아키텍처에 따라 달라집니다.

신경망 아키텍처데이터저장소 출력값출력값의 예
하나의 입력 계층

두 개의 열로 구성된 테이블 또는 셀형 배열.

첫 번째 열과 두 번째 열은 각각 예측 변수와 응답 변수를 지정합니다.

테이블 요소는 스칼라 또는 행 벡터이거나 숫자형 배열을 포함하는 1×1 셀형 배열이어야 합니다.

사용자 지정 미니 배치 데이터저장소는 테이블을 출력해야 합니다.

1개의 입력값과 1개의 출력값을 갖는 신경망에 대한 테이블:

data = read(ds)
data =

  4×2 table

        Predictors        Response
    __________________    ________

    {24×1 double}            2    
    {24×1 double}            7    
    {24×1 double}            9    
    {24×1 double}            9  

1개의 입력값과 1개의 출력값을 갖는 신경망에 대한 셀형 배열:

data = read(ds)
data =

  4×2 cell array

    {24×1 double}    {[2]}
    {24×1 double}    {[7]}
    {24×1 double}    {[9]}
    {24×1 double}    {[9]}

여러 개의 입력 계층

(numInputs + 1)개의 열로 구성된 셀형 배열로, 여기서 numInputs는 신경망 입력값의 개수입니다.

처음 numInputs개의 열은 각 입력값에 대한 예측 변수를 지정하고 마지막 열은 응답 변수를 지정합니다.

입력값의 순서는 계층 그래프 layersInputNames 속성으로 지정됩니다.

2개의 입력값과 1개의 출력값을 갖는 신경망에 대한 셀형 배열:

data = read(ds)
data =

  4×3 cell array

    {24×1 double}    {28×1 double}    {[2]}
    {24×1 double}    {28×1 double}    {[2]}
    {24×1 double}    {28×1 double}    {[9]}
    {24×1 double}    {28×1 double}    {[9]}

예측 변수는 c×1 열 벡터여야 합니다. 여기서 c는 특징의 개수입니다.

응답 변수의 형식은 작업의 유형에 따라 달라집니다.

작업응답 변수의 형식
분류categorical형 스칼라
회귀

  • 스칼라

  • 숫자형 벡터

자세한 내용은 Datastores for Deep Learning 항목을 참조하십시오.

테이블

메모리에 맞고 사용자 지정 변환과 같은 추가 처리가 필요하지 않은 특징 데이터의 경우 특징 데이터와 응답 변수를 테이블로 지정할 수 있습니다.

테이블의 각 행은 관측값 하나에 대응됩니다. 테이블 열에서 예측 변수와 응답 변수의 배치되는 방식은 작업의 유형에 따라 달라집니다.

작업예측 변수응답 변수
특징 분류

하나 이상의 열에 스칼라로 지정된 특징.

responses 인수를 지정하지 않으면 예측 변수는 테이블의 처음 numFeatures개 열에 있어야 합니다. 여기서 numFeatures는 입력 데이터의 특징 개수입니다.

categorical형 레이블

특징 회귀

스칼라 값으로 구성된 하나 이상의 열

특징 입력값을 갖는 분류 신경망의 경우, responses 인수를 지정하지 않으면 함수는 기본적으로 tbl의 처음 (numColumns - 1)개 열을 예측 변수용으로 사용하고 마지막 열을 레이블용으로 사용합니다. 여기서 numFeatures는 입력 데이터의 특징 개수입니다.

특징 입력값을 갖는 회귀 신경망의 경우, responseNames 인수를 지정하지 않으면 함수는 기본적으로 처음 numFeatures개 열을 예측 변수용으로 사용하고 뒤에 오는 열을 응답 변수용으로 사용합니다. 여기서 numFeatures는 입력 데이터의 특징 개수입니다.

숫자형 배열

메모리에 맞고 사용자 지정 변환과 같은 추가 처리가 필요하지 않은 특성 데이터의 경우 특징 데이터를 숫자형 배열로 지정할 수 있습니다. 특징 데이터를 숫자형 배열로 지정하는 경우 responses 인수도 지정해야 합니다.

숫자형 배열은 N×numFeatures 숫자형 배열이어야 합니다. 여기서 N은 관측값의 개수이고, numFeatures는 입력 데이터의 특징의 개수입니다.

  • 응답 변수를 정규화하면 회귀를 위한 신경망 훈련을 안정화하고 속도를 높이는 데 도움이 되는 경우가 많습니다. 자세한 내용은 회귀를 위해 컨벌루션 신경망 훈련시키기 항목을 참조하십시오.

  • 응답 변수는 NaN을 포함해서는 안 됩니다. 예측 변수 데이터에 NaN이 포함되어 있는 경우, 이 값이 훈련 끝까지 전파됩니다. 그러나 대부분의 경우 훈련이 수렴하지 않습니다.

  • 이 인수는 복소수 값 예측 변수를 지원합니다. trainNetwork 함수를 사용하여 복소수 값 예측 변수를 갖는 신경망을 훈련시키려면 입력 계층의 SplitComplexInputs 옵션이 1(true)이어야 합니다.

혼합된 데이터 및 응답 변수로, 다음 중 하나로 지정됩니다.

데이터 유형설명대표적인 사용법
TransformedDatastore사용자 지정 변환 함수를 사용하여 기본 데이터저장소에서 읽어 들인 데이터 배치를 변환하는 데이터저장소.

  • 여러 개의 입력값을 갖는 신경망을 훈련시킵니다.

  • trainNetwork에서 지원하지 않는 데이터저장소의 출력값을 필요한 형식을 갖도록 변환합니다.

  • 데이터저장소 출력값에 사용자 지정 변환을 적용합니다.

CombinedDatastore둘 이상의 기본 데이터저장소에서 읽어 들인 데이터저장소.

  • 여러 개의 입력값을 갖는 신경망을 훈련시킵니다.

  • 서로 다른 데이터 소스의 예측 변수와 응답 변수를 결합합니다.

사용자 지정 미니 배치 데이터저장소데이터의 미니 배치를 반환하는 사용자 지정 데이터저장소.

다른 데이터저장소에서 지원하지 않는 형식의 데이터를 사용하여 신경망을 훈련시킵니다.

자세한 내용은 Develop Custom Mini-Batch Datastore 항목을 참조하십시오.

transform 함수와 combine 함수를 사용하여 딥러닝 신경망 훈련을 위해 다른 내장 데이터저장소를 사용할 수 있습니다. 이러한 함수는 데이터저장소에서 읽어 들인 데이터를 trainNetwork에 필요한 테이블 또는 셀형 배열 형식으로 변환할 수 있습니다. 자세한 내용은 Datastores for Deep Learning 항목을 참조하십시오.

데이터저장소는 데이터를 테이블 또는 셀형 배열로 반환해야 합니다. 사용자 지정 미니 배치 데이터저장소는 테이블을 출력해야 합니다. 데이터저장소 출력값의 형식은 신경망 아키텍처에 따라 달라집니다.

데이터저장소 출력값출력값의 예

(numInputs + 1)개의 열로 구성된 셀형 배열로, 여기서 numInputs는 신경망 입력값의 개수입니다.

처음 numInputs개의 열은 각 입력값에 대한 예측 변수를 지정하고 마지막 열은 응답 변수를 지정합니다.

입력값의 순서는 계층 그래프 layersInputNames 속성으로 지정됩니다.

data = read(ds)
data =

  4×3 cell array

    {24×1 double}    {28×1 double}    {[2]}
    {24×1 double}    {28×1 double}    {[2]}
    {24×1 double}    {28×1 double}    {[9]}
    {24×1 double}    {28×1 double}    {[9]}

영상, 시퀀스, 특징 예측 변수 입력값에 대해 예측 변수 형식은 각각 images, sequences, features 인수 설명에 기술된 형식과 일치해야 합니다. 마찬가지로, 응답 변수의 형식은 작업 유형에 대응하는 images, sequences 또는 features 인수 설명에 기술된 형식과 일치해야 합니다.

trainNetwork 함수는 최대 한 개의 시퀀스 입력 계층을 갖는 신경망을 지원합니다.

여러 개의 입력값을 갖는 신경망을 훈련시키는 방법을 보여주는 예제는 영상 데이터와 특징 데이터로 신경망 훈련시키기 항목을 참조하십시오.

  • 숫자형 배열을 데이터저장소로 변환하려면, ArrayDatastore를 사용하십시오.

  • 혼합된 데이터형으로 구성된 신경망에서 계층을 결합하는 경우 데이터를 결합 계층(예: 결합 계층 또는 덧셈 계층)으로 전달하기 전에 데이터 형식을 다시 지정해야 할 수 있습니다. 데이터 형식을 다시 지정하려면 평탄화 계층을 사용하여 공간 차원을 채널 차원으로 평탄화하거나 형식을 새로 지정하고 형태를 변경하는 FunctionLayer 객체 또는 사용자 지정 계층을 만들면 됩니다.

  • 이 인수는 복소수 값 예측 변수를 지원합니다. trainNetwork 함수를 사용하여 복소수 값 예측 변수를 갖는 신경망을 훈련시키려면 입력 계층의 SplitComplexInputs 옵션이 1(true)이어야 합니다.

응답 변수.

입력 데이터가 숫자형 배열 또는 셀형 배열인 경우 응답 변수를 다음 중 하나로 지정합니다.

  • 레이블로 구성된 categorical형 벡터

  • 숫자형 응답 변수로 구성된 숫자형 배열

  • categorical형 또는 숫자형 시퀀스로 구성된 셀형 배열

입력 데이터가 테이블인 경우 다음 중 하나로 응답 변수를 포함하는 테이블 열을 선택적으로 지정할 수 있습니다.

  • 문자형 벡터

  • 문자형 벡터로 구성된 셀형 배열

  • string형 배열

입력 데이터가 숫자형 배열 또는 셀형 배열인 경우 응답 변수의 형식은 작업 유형에 따라 달라집니다.

작업형식
분류영상 분류레이블로 구성된 N×1 categorical형 벡터로, 여기서 N은 관측값의 개수입니다.
특징 분류
sequence-to-label 분류
sequence-to-sequence 분류

레이블로 구성된 categorical형 시퀀스의 N×1 셀형 배열로, 여기서 N은 관측값의 개수입니다. 각 시퀀스는 대응되는 예측 변수 시퀀스와 시간 스텝 개수가 동일해야 합니다.

관측값이 1개인 sequence-to-sequence 분류 작업의 경우, sequences는 벡터가 될 수도 있습니다. 이 경우 responses는 레이블로 구성된 categorical형 행 벡터가 되어야 합니다.

회귀2차원 영상 회귀
  • N×R 행렬로, 여기서 N은 영상의 개수이고 R은 응답 변수의 개수입니다.

  • h×w×c×N 숫자형 배열로, 여기서 h, w, c는 각각 영상의 높이, 너비, 채널 개수이고 N은 영상 개수입니다.

3차원 영상 회귀
  • N×R 행렬로, 여기서 N은 영상의 개수이고 R은 응답 변수의 개수입니다.

  • h×w×d×c×N 숫자형 배열로, 여기서 h, w, d, c는 각각 영상의 높이, 너비, 깊이, 채널 개수이고 N은 영상 개수입니다.

특징 회귀

N×R 행렬로, 여기서 N은 관측값의 개수이고 R은 응답 변수의 개수입니다.

sequence-to-one 회귀N×R 행렬로, 여기서 N은 시퀀스의 개수이고 R은 응답 변수의 개수입니다.
sequence-to-sequence 회귀

숫자형 시퀀스로 구성된 N×1 셀형 배열로, 여기서 N은 시퀀스의 개수입니다. 시퀀스는 다음 중 하나로 지정됩니다.

  • R×s 행렬로, 여기서 R은 응답 변수의 개수이고, s는 대응되는 예측 변수 시퀀스의 시퀀스 길이입니다.

  • h×w×R×s 배열로, 여기서 h와 w는 각각 출력값의 높이와 너비이며, R은 응답 변수의 개수, s는 대응되는 예측 변수 시퀀스의 시퀀스 길이입니다.

  • h×w×d×R×s 배열로, 여기서 h, w, d는 각각 출력값의 높이와 너비, 깊이이며, R은 응답 변수의 개수, s는 대응되는 예측 변수 시퀀스의 시퀀스 길이입니다.

관측값이 1개인 sequence-to-sequence 회귀 작업의 경우, sequences는 숫자형 배열이 될 수 있습니다. 이 경우 responses는 응답 변수로 구성된 숫자형 배열이 되어야 합니다.

응답 변수를 정규화하면 회귀를 위한 신경망 훈련을 안정화하고 속도를 높이는 데 도움이 되는 경우가 많습니다. 자세한 내용은 회귀를 위해 컨벌루션 신경망 훈련시키기 항목을 참조하십시오.

응답 변수는 NaN을 포함해서는 안 됩니다. 예측 변수 데이터에 NaN이 포함되어 있는 경우, 이 값이 훈련 끝까지 전파됩니다. 그러나 대부분의 경우 훈련이 수렴하지 않습니다.

신경망 계층으로, Layer 배열 또는 LayerGraph 객체로 지정됩니다.

모든 계층이 순차적으로 연결된 신경망을 만들려면 입력 인수로 Layer 배열을 사용하면 됩니다. 이 경우, 반환되는 신경망은 SeriesNetwork 객체입니다.

유방향 비순환 그래프(DAG) 신경망은 계층이 여러 개의 입력과 출력을 가질 수 있는 복잡한 구조를 갖습니다. DAG 신경망을 만들려면 신경망 아키텍처를 LayerGraph 객체로 지정한 다음 해당 계층 그래프를 trainNetwork에 대한 입력 인수로 사용하십시오.

trainNetwork 함수는 최대 한 개의 시퀀스 입력 계층을 갖는 신경망을 지원합니다.

내장 계층 목록은 딥러닝 계층 목록 항목을 참조하십시오.

훈련 옵션으로, trainingOptions 함수가 반환하는 TrainingOptionsSGDM, TrainingOptionsRMSProp 또는 TrainingOptionsADAM 객체로 지정됩니다.

출력 인수

모두 축소

훈련된 신경망으로, SeriesNetwork 객체 또는 DAGNetwork 객체로 반환됩니다.

Layer 배열을 사용하여 신경망을 훈련시키는 경우, netSeriesNetwork 객체가 됩니다. LayerGraph 객체를 사용하여 신경망을 훈련시키는 경우, netDAGNetwork 객체가 됩니다.

훈련 정보로, 구조체로 반환됩니다. 여기서 각 필드는 스칼라 또는 훈련 반복 1회당 하나의 요소를 가진 숫자형 벡터입니다.

분류 작업의 경우, info는 다음 필드를 포함합니다.

  • TrainingLoss — 손실 함수 값

  • TrainingAccuracy — 훈련 정확도

  • ValidationLoss — 손실 함수 값

  • ValidationAccuracy — 검증 정확도

  • BaseLearnRate — 학습률

  • FinalValidationLoss — 반환된 신경망의 검증 손실

  • FinalValidationAccuracy — 반환된 신경망의 검증 정확도

  • OutputNetworkIteration — 반환된 신경망의 반복 횟수

회귀 작업의 경우, info는 다음 필드를 포함합니다.

  • TrainingLoss — 손실 함수 값

  • TrainingRMSE — 훈련 RMSE 값

  • ValidationLoss — 손실 함수 값

  • ValidationRMSE — 검증 RMSE 값

  • BaseLearnRate — 학습률

  • FinalValidationLoss — 반환된 신경망의 검증 손실

  • FinalValidationRMSE — 반환된 신경망의 검증 RMSE

  • OutputNetworkIteration — 반환된 신경망의 반복 횟수

options가 검증 데이터를 지정하는 경우에는 구조체가 ValidationLoss, ValidationAccuracy, ValidationRMSE , FinalValidationLoss , FinalValidationAccuracy, FinalValidationRMSE 필드만 포함합니다. ValidationFrequency 훈련 옵션은 소프트웨어가 어느 반복에서 검증 메트릭을 계산할지 결정합니다. 최종 검증 메트릭은 스칼라입니다. 그 외 다른 구조체 필드는 행 벡터로, 각 요소가 한 번의 훈련 반복에 대응됩니다. 소프트웨어가 검증 메트릭을 계산하지 않는 반복의 경우, 구조체에서 대응되는 값은 NaN입니다.

배치 정규화 계층을 포함하는 신경망의 경우 BatchNormalizationStatistics 훈련 옵션이 'population'이면 최종 검증 메트릭은 종종 훈련 중에 계산된 검증 메트릭과 다릅니다. 최종 신경망의 배치 정규화 계층은 훈련 중일 때와 다른 연산을 수행하기 때문입니다. 자세한 내용은 batchNormalizationLayer 항목을 참조하십시오.

세부 정보

모두 축소

검사 지점 신경망을 저장하고 훈련 재개하기

Deep Learning Toolbox™를 사용하면 훈련 중에 신경망을 .mat 파일로 저장할 수 있습니다. 신경망 또는 데이터 세트의 규모가 커서 훈련시키는 데 오래 걸리는 경우에는 이와 같이 주기적으로 저장하는 것이 특히 유용합니다. 어떤 이유로 훈련이 중단된 경우, 마지막으로 저장된 검사 지점 신경망에서부터 훈련을 재개할 수 있습니다. trainNetwork 함수가 검사 지점 신경망을 저장하도록 하려면 trainingOptionsCheckpointPath 옵션을 사용하여 경로의 이름을 지정해야 합니다. 지정한 경로가 존재하지 않는 경우, trainingOptions는 오류를 반환합니다.

소프트웨어는 검사 지점 신경망 파일에 자동으로 고유한 이름을 할당합니다. net_checkpoint__351__2018_04_12__18_09_52.mat라는 예제 이름에서 351은 반복 횟수이고, 2018_04_12는 날짜이고, 18_09_52는 신경망이 저장된 시간입니다. 검사 지점 신경망 파일은 파일을 더블 클릭하거나 명령줄에서 load 명령을 사용하여 불러올 수 있습니다. 예를 들면 다음과 같습니다.

load net_checkpoint__351__2018_04_12__18_09_52.mat
그런 다음 trainNetwork에 대한 입력 인수로 신경망의 계층을 사용하여 훈련을 재개할 수 있습니다. 예를 들면 다음과 같습니다.

trainNetwork(XTrain,TTrain,net.Layers,options)
검사 지점 신경망에는 훈련 옵션과 입력 데이터가 없으므로, 훈련 옵션 및 입력 데이터는 직접 지정해야 합니다.

부동소수점 연산방식

trainnet 또는 trainNetwork 함수를 사용하여 신경망을 훈련시키거나 DAGNetwork 객체 및 SeriesNetwork 객체와 함께 예측 함수 또는 검증 함수를 사용할 때 소프트웨어는 단정밀도 부동소수점 연산방식을 사용하여 이러한 계산을 수행합니다. 예측 및 검증을 위한 함수는 predict, classify, activations 등이 있습니다. CPU와 GPU를 모두 사용하여 신경망을 훈련시키는 경우, 단정밀도 연산방식이 사용됩니다.

재현성

최상의 성능을 위해 MATLAB®에서 GPU를 사용해 딥러닝을 실행한다고 해도 성능이 반드시 보장되는 것은 아닙니다. 신경망 아키텍처에 따라 GPU를 사용하여 두 개의 같은 신경망을 훈련시키거나 동일한 신경망 및 데이터를 사용하여 두 개의 예측값을 생성할 때 조건에 따라 결과가 달라질 수 있습니다.

확장 기능

버전 내역

R2016a에 개발됨

모두 확장

R2024a: 권장되지 않음

R2024a부터 trainNetwork 함수는 권장되지 않습니다. 대신 trainnet 함수를 사용하십시오.

trainNetwork 함수에 대한 지원을 제거할 계획은 없습니다. 하지만 다음과 같은 이점이 있는 trainnet 함수가 대신 권장됩니다.

  • trainnet은 외부 플랫폼에서 만들거나 가져올 수 있는 더 넓은 범위의 신경망 아키텍처를 지원하는 dlnetwork 객체를 지원합니다.

  • trainnet을 사용하면 손실 함수를 쉽게 지정할 수 있습니다. 내장 손실 함수 중에서 선택하거나 사용자 지정 손실 함수를 지정할 수 있습니다.

  • trainnet은 신경망 구축, 예측, 기본 제공 훈련, 시각화, 압축, 검증, 사용자 지정 훈련 루프를 지원하는 통합 데이터형인 dlnetwork 객체를 출력합니다.

  • trainnettrainNetwork보다 일반적으로 더 빠릅니다.

다음 표에서는 trainNetwork 함수의 몇 가지 일반적인 사용법과 trainnet 함수를 대신 사용하도록 코드를 업데이트하는 방법을 보여줍니다.

권장되지 않음권장됨
net = trainNetwork(data,layers,options);net = trainnet(data,layers,lossFcn,options);
net = trainNetwork(X,T,layers,options);net = trainnet(X,T,layers,lossFcn,options);

출력 계층을 사용하는 대신 lossFcn을 사용하여 손실 함수를 지정하십시오.