주요 콘텐츠

Predict

훈련된 딥러닝 신경망을 사용하여 응답 변수 예측

  • Predict block

라이브러리:
Deep Learning Toolbox / Deep Neural Networks

설명

Predict 블록은 블록 파라미터를 통해 지정된 훈련된 신경망을 사용하여 입력값에 대한 데이터의 응답 변수를 예측합니다. 이 블록을 사용하면 MAT 파일 또는 MATLAB® 함수에서 사전 훈련된 신경망을 Simulink® 모델에 불러올 수 있습니다.

참고

Predict 블록을 사용하여 Simulink에서 예측을 수행합니다. MATLAB 코드를 사용하여 프로그래밍 방식으로 예측을 수행하려면 minibatchpredict 함수 또는 predict 함수를 사용하십시오.

예제

포트

입력

모두 확장

Predict 블록의 입력 포트는 불러온 신경망의 입력 계층 이름을 받습니다. 예를 들어, MATLAB functionimagePretrainedNetwork를 지정하면 Predict 블록의 입력 포트의 레이블은 data입니다. 불러온 신경망에 따라 Predict 블록에 대한 입력값은 영상, 시퀀스 또는 시계열 데이터일 수 있습니다.

입력값의 레이아웃은 데이터의 유형에 따라 달라집니다.

데이터예측 변수의 레이아웃
2차원 영상h×w×c×N 숫자형 배열로, 여기서 h, w, c는 각각 영상의 높이, 너비, 채널 개수이고 N은 영상 개수입니다.
벡터 시퀀스s×c 행렬로, 여기서 s는 시퀀스 길이이고 c는 시퀀스의 특징 개수입니다.
2차원 영상 시퀀스h×w×c×s 배열. 여기서 h, w, c는 영상의 높이, 너비, 채널 개수이고 s는 시퀀스 길이입니다.
특징N×numFeatures 숫자형 배열로, 여기서 N은 관측값의 개수이고, numFeatures는 입력 데이터의 특징의 개수입니다.

배열에 NaN이 포함되어 있는 경우, 이 값이 신경망 끝까지 전파됩니다.

출력

모두 확장

Predict 블록의 출력 포트는 불러온 신경망의 출력 계층 이름을 받습니다. 예를 들어, MATLAB functionimagePretrainedNetwork를 지정하면 Predict 블록의 출력 포트에 prob_flatten이라는 레이블이 지정됩니다. 불러온 신경망에 따라 Predict 블록의 출력값은 예측 점수 또는 응답 변수를 나타낼 수 있습니다.

예측 점수 또는 응답 변수는 K×N 배열로 반환됩니다. 여기서 K는 클래스의 개수이고 N은 관측값의 개수입니다.

신경망 계층에 대해 Activations를 활성화하면 Predict 블록이 선택된 신경망 계층의 이름으로 새 출력 포트를 생성합니다. 이 포트는 선택된 신경망 계층의 활성화 결과를 출력합니다.

신경망 계층의 활성화 결과는 숫자형 배열로 반환됩니다. 출력 형식은 입력 데이터의 유형과 계층 출력값의 유형에 따라 달라집니다.

2차원 영상 출력값에 대해, 활성화 결과는 h×w×c×n 배열입니다. 여기서 h, w, c는 선택한 계층 출력값의 높이, 너비, 채널 개수이고, n은 영상 개수입니다.

벡터 데이터를 포함하는 단일 시간 스텝에 대해, 활성화 결과는 c×n 행렬입니다. 여기서 c는 시퀀스에 있는 특징의 개수이고 n은 시퀀스의 개수입니다.

벡터 데이터를 포함하는 다중 시간 스텝에 대해, 활성화 결과는 c×n×s 행렬입니다. 여기서 c는 시퀀스에 있는 특징의 개수이고 n은 시퀀스의 개수이며 s는 시퀀스 길이입니다.

2차원 영상 데이터를 포함하는 단일 시간 스텝에 대해, 활성화 결과는 h×w×c×n 배열입니다. 여기서 n은 시퀀스 개수이고, h, w, c는 각각 영상의 높이, 너비, 채널 개수입니다.

파라미터

모두 확장

훈련된 신경망의 출처를 지정합니다. 다음 중 하나를 선택합니다.

  • MAT 파일에서 가져온 신경망dlnetwork 객체를 포함하는 MAT 파일에서 훈련된 신경망을 가져옵니다.

  • MATLAB 함수에서 가져온 신경망 — MATLAB 함수에서 사전 훈련된 dlnetwork 객체 신경망을 가져옵니다. 예를 들어, 사전 훈련된 GoogLeNet을 사용하려면 함수 pretrainedGoogLeNet을 MATLAB M 파일로 만든 다음 이 함수를 가져옵니다.

    function net = pretrainedGoogLeNet
      net = imagePretrainedNetwork("googlenet");
    end

프로그래밍 방식 사용

블록 파라미터: Network
유형: 문자형 벡터, string형
값: 'Network from MAT file' | 'Network from MATLAB function'
디폴트 값: 'Network from MAT file'

이 파라미터는 불러올 훈련된 딥러닝 신경망을 포함하는 MAT 파일의 이름을 지정합니다. 파일이 MATLAB 경로에 있지 않으면 찾아보기 버튼을 사용하여 파일을 찾습니다.

종속 관계

이 파라미터를 활성화하려면 신경망 파라미터를 MAT 파일에서 가져온 신경망으로 설정하십시오.

프로그래밍 방식 사용

블록 파라미터: NetworkFilePath
유형: 문자형 벡터, string형
값: MAT 파일 경로 또는 이름
디폴트 값: 'untitled.mat'

이 파라미터는 사전 훈련된 딥러닝 신경망의 MATLAB 함수 이름을 지정합니다. 예를 들어, 사전 훈련된 GoogLeNet을 사용하려면 함수 pretrainedGoogLeNet을 MATLAB M 파일로 만든 다음 이 함수를 가져옵니다.

function net = pretrainedGoogLeNet
  net = imagePretrainedNetwork("googlenet");
end

종속 관계

이 파라미터를 활성화하려면 신경망 파라미터를 MATLAB 함수에서 가져온 신경망으로 설정하십시오.

프로그래밍 방식 사용

블록 파라미터: NetworkFunction
유형: 문자형 벡터, string형
값: MATLAB 함수 이름
디폴트 값: 'squeezenet'

예측에 사용할 미니 배치의 크기로, 양의 정수로 지정됩니다. 미니 배치가 클수록 메모리가 더 많이 필요하지만 예측 속도는 빨라질 수 있습니다.

프로그래밍 방식 사용

블록 파라미터: MiniBatchSize
유형: 문자형 벡터, string형
값: 양의 정수
디폴트 값: '128'

R2026a 이후

  • 자동 모드 –– 이 옵션은 모델 구성 및 코드 생성 호환성에 따라 시뮬레이션 모드를 자동으로 선택합니다. 이 옵션은 코드 생성이 지원되는 경우 코드 생성을 사용하고, 모델이 코드 생성과 호환되지 않을 경우 인터프리터형 실행으로 전환합니다.

  • 인터프리터형 실행 –– MATLAB 인터프리터를 사용하여 모델을 시뮬레이션합니다. 이 옵션은 기동 시간을 단축하지만, 코드 생성에 비해 시뮬레이션 속도가 느립니다. 이 모드에서는 블록의 소스 코드를 디버그할 수 있습니다.

  • 코드 생성 –– 생성된 코드를 사용하여 모델을 시뮬레이션합니다.

    Predict 블록이 포함된 모델을 처음으로 시뮬레이션할 때, 해당 블록에서 이진 코드 또는 C/C++ MATLAB 실행 파일(MEX) 코드를 생성하고 이 코드를 모델과 통합합니다. Predict 블록은 Simulink 외부의 MATLAB 코드에서 C/C++ 코드를 생성하는 데 사용하는 MATLAB Coder™와 동일한 인프라를 사용합니다. 생성된 코드는 모델이 변경되지 않는 한 후속 시뮬레이션에 재사용됩니다. 이 옵션은 추가적인 기동 시간을 필요로 하지만, 후속 시뮬레이션의 속도는 인터프리터형 실행과 비슷합니다.

Simulink 모델이 표준 모드에서 시뮬레이션되도록 설정되어 있고 코드 생성을 통해 Predict 블록을 사용하는 경우, 개별 Predict 블록은 코드 생성을 통한 가속화 기능을 활용할 수 있습니다. Simulink 모델이 액셀러레이터 모드 또는 기타 타깃 모드로 시뮬레이션되도록 설정된 경우, Predict 블록의 다음을 사용하여 시뮬레이션 파라미터는 아무런 영향을 주지 않습니다. 하지만 한 가지 예외가 있습니다. 모델이 액셀러레이터 모드로 시뮬레이션되도록 설정되어 있고 인터프리터형 실행 모드로 설정된 Predict 블록을 사용하는 경우, 해당 블록은 인터프리터형 실행 모드로 실행됩니다.

프로그래밍 방식 사용

블록 파라미터: SimulateUsing
유형: 문자형 벡터, string형
값: "Auto mode" | "Interpreted execution" | "Code generation"
디폴트 값: "Auto mode"

예측 점수 또는 응답 변수를 반환하는 출력 포트를 활성화합니다.

프로그래밍 방식 사용

블록 파라미터: Predictions
유형: 문자형 벡터, string형
값: 'off' | 'on'
디폴트 값: 'on'

이 파라미터는 훈련된 dlnetwork에 필요한 입력 데이터 형식을 지정합니다.

데이터 형식으로, string형 스칼라 또는 문자형 벡터로 지정됩니다. 문자열의 각 문자는 다음 차원 레이블 중 하나여야 합니다.

  • "S" — 공간

  • "C" — 채널

  • "B" — 배치

  • "T" — 시간

  • "U" — 지정되지 않음

예를 들어, 첫 번째, 두 번째, 세 번째 차원이 각각 채널, 관측값, 시간 스텝에 대응되는 시퀀스 배치를 포함하는 배열의 경우 "CBT" 형식을 갖도록 지정할 수 있습니다.

"S" 또는 "U" 레이블의 차원은 여러 개 지정할 수 있습니다. 레이블 "C", "B", "T"는 각각 최대 한 번만 사용할 수 있습니다. 두 번째 차원 뒤의 한원소 후행 "U" 차원은 무시됩니다.

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

기본적으로 이 파라미터는 신경망이 요구하는 데이터 형식을 사용합니다.

종속 관계

이 파라미터를 활성화하려면 신경망 파라미터를 MAT 파일에서 가져온 신경망으로 설정하여 MAT 파일에서 훈련된 dlnetwork 객체를 가져오십시오.

프로그래밍 방식 사용

블록 파라미터: InputDataFormats
유형: 문자형 벡터, string형
값: 하나 이상의 입력값이 있는 신경망의 경우 "{'inputlayerName1', 'SSC'; 'inputlayerName2', 'SSCB'; ...}" 형식의 텍스트를 지정합니다. 입력 계층이 없고 입력 포트가 여러 개인 신경망의 경우 "{'inputportName1/inport1, 'SSC'; 'inputportName2/inport2, 'SSCB'; ...}" 형식의 텍스트를 지정합니다.
디폴트 값: 신경망이 요구하는 데이터 형식. 자세한 내용은 Deep Learning Data Formats 항목을 참조하십시오.

활성화 목록을 사용하여 특징을 추출할 계층을 선택합니다. 선택한 계층이 Predict 블록의 출력 포트로 표시됩니다.

프로그래밍 방식 사용

블록 파라미터: Activations
유형: 문자형 벡터, string형
값: '{'layerName1',layerName2',...}' 형식의 문자형 벡터
디폴트 값: ''

확장 기능

모두 확장

버전 내역

R2020b에 개발됨

모두 확장