Main Content

importCaffeNetwork

Caffe에서 사전 훈련된 컨벌루션 신경망 모델 가져오기

설명

예제

net = importCaffeNetwork(protofile,datafile)은 Caffe에서 사전 훈련된 신경망을 가져옵니다[1]. 이 함수는 protofile(.prototxt 파일)로 지정된 아키텍처와 datafile(.caffemodel 파일)로 지정된 신경망 가중치를 갖는 사전 훈련된 신경망을 반환합니다.

이 함수를 사용하려면 Deep Learning Toolbox™ Importer for Caffe Models 지원 패키지가 필요합니다. 이 지원 패키지가 설치되어 있지 않으면 함수에서 다운로드 링크를 제공합니다.

Caffe Model Zoo [2]에서 사전 훈련된 신경망을 다운로드할 수 있습니다.

net = importCaffeNetwork(___,Name,Value)는 위에 열거된 구문과 함께 하나 이상의 Name,Value 쌍 인수로 지정된 추가 옵션을 사용하여 신경망을 반환합니다.

예제

모두 축소

Deep Learning Toolbox Importer for Caffe Models 지원 패키지를 다운로드하고 설치합니다.

필요한 지원 패키지를 다운로드하려면 명령줄에 importCaffeNetwork를 입력하십시오.

importCaffeNetwork

Deep Learning Toolbox Importer for Caffe Models 지원 패키지가 설치되어 있지 않은 경우, 필요한 지원 패키지로 연결되는 애드온 탐색기 링크를 함수에서 제공합니다. 지원 패키지를 설치하려면 링크를 클릭한 다음 설치를 클릭하십시오.

가져올 파일을 지정합니다.

protofile = 'digitsnet.prototxt';
datafile = 'digits_iter_10000.caffemodel';

신경망을 가져옵니다.

net = importCaffeNetwork(protofile,datafile)
net = 
  SeriesNetwork with properties:

         Layers: [7×1 nnet.cnn.layer.Layer]
     InputNames: {'testdata'}
    OutputNames: {'ClassificationOutput'}

입력 인수

모두 축소

신경망 아키텍처를 포함하는 .prototxt 파일의 파일 이름으로, 문자형 벡터 또는 string형 스칼라로 지정됩니다. protofile은 현재 폴더 또는 MATLAB® 경로에 있는 폴더에 있어야 합니다. 또는 파일에 대한 전체 경로 또는 상대 경로를 포함해야 합니다. .prototxt 파일이 입력 데이터의 크기를 지정하지 않는 경우, 'InputSize' 이름-값 쌍의 인수를 사용하여 직접 크기를 지정해야 합니다.

예: 'digitsnet.prototxt'

신경망 가중치를 포함하는 .caffemodel 파일의 파일 이름으로, 문자형 벡터 또는 string형 스칼라로 지정됩니다. datafile은 현재 폴더 또는 MATLAB 경로에 있는 폴더에 있어야 합니다. 또는 파일에 대한 전체 경로 또는 상대 경로를 포함해야 합니다. 신경망 계층을 가중치 없이 가져오려면 importCaffeLayers를 사용하십시오.

예: 'digits_iter_10000.caffemodel'

이름-값 인수

선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN으로 지정합니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.

R2021a 이전 릴리스에서는 쉼표를 사용하여 각 이름과 값을 구분하고 Name을 따옴표로 묶으십시오.

예: importCaffeNetwork(protofile,datafile,'AverageImage',I)는 0이 중심이 되는 정규화를 위한 평균값 영상으로 I를 사용하여 사전 훈련된 신경망을 가져옵니다.

입력 데이터의 크기로, 행 벡터로 지정됩니다. 입력 데이터의 높이, 너비, 채널 개수에 해당하는 두세 개의 정수 값으로 구성된 벡터, 즉 [h,w] 또는 [h,w,c]를 지정합니다. .prototxt 파일이 입력 데이터의 크기를 지정하지 않는 경우, 직접 입력 크기를 지정해야 합니다.

예: [28 28 1]

0이 중심이 되는 정규화를 위한 평균값 영상으로, 행렬로 지정됩니다. 영상을 지정하는 경우, 입력 데이터와 크기가 같은 영상을 지정해야 합니다. 영상을 지정하지 않은 경우, .prototxt 파일에 지정된 데이터가 있으면 이 데이터가 사용됩니다. 이 데이터가 없으면 함수는 신경망의 영상 입력 계층의 Normalization 속성을 'none'으로 설정합니다.

출력 계층의 클래스로, categorical형 벡터, string형 배열, 문자형 벡터로 구성된 셀형 배열 또는 'auto'로 지정됩니다. string형 배열 또는 문자형 벡터로 구성된 셀형 배열 str을 지정하면, 출력 계층의 클래스가 categorical(str,str)로 설정됩니다. Classes'auto'인 경우, 함수는 클래스를 categorical(1:N)으로 설정합니다. 여기서 N은 클래스의 개수입니다.

데이터형: char | categorical | string | cell

출력 인수

모두 축소

가져온 사전 훈련된 Caffe 신경망으로, SeriesNetwork 객체 또는 DAGNetwork 객체로 반환됩니다. 입력값으로 컬러 영상을 받는 Caffe 신경망의 경우 영상이 BGR 형식이어야 합니다. 가져오기 중에 importCaffeNetwork 함수는 가져온 MATLAB 신경망이 입력값으로 RGB 영상을 받도록 신경망을 수정합니다.

세부 정보

모두 축소

가져온 신경망에 대한 코드 생성하기

MATLAB Coder™ 또는 GPU Coder™를 Deep Learning Toolbox와 함께 사용하여 가져온 신경망에 대해 MEX, 독립 실행형 CPU, CUDA® MEX 또는 독립 실행형 CUDA 코드를 생성할 수 있습니다. 자세한 내용은 코드 생성 항목을 참조하십시오.

  • MATLAB Coder를 Deep Learning Toolbox와 함께 사용하여 데스크탑 또는 임베디드 타깃에서 실행되는 MEX 또는 독립 실행형 CPU 코드를 생성합니다. Intel® MKL-DNN 라이브러리 또는 ARM® Compute Library를 사용하는, 생성된 독립 실행형 코드를 배포할 수 있습니다. 또는 타사 라이브러리 함수를 호출하지 않는 일반 C 또는 C++ 코드를 생성할 수 있습니다. 자세한 내용은 Deep Learning with MATLAB Coder (MATLAB Coder) 항목을 참조하십시오.

  • GPU Coder를 Deep Learning Toolbox와 함께 사용하여 데스크탑 또는 임베디드 타깃에서 실행되는 CUDA MEX 또는 독립 실행형 CUDA 코드를 생성합니다. CUDA 심층 신경망 라이브러리(cuDNN), TensorRT™ 고성능 추론 라이브러리 또는 Mali GPU용 ARM Compute Library를 사용하는, 생성된 독립 실행형 CUDA 코드를 배포할 수 있습니다. 자세한 내용은 Deep Learning with GPU Coder (GPU Coder) 항목을 참조하십시오.

importCaffeNetwork 함수는 신경망 netDAGNetwork 또는 SeriesNetwork 객체로 반환합니다. 이러한 객체는 모두 코드 생성을 지원합니다. MATLAB Coder와 GPU Coder의 Deep Learning Toolbox 객체 지원에 관한 자세한 내용은 Supported Classes (MATLAB Coder) 항목과 Supported Classes (GPU Coder) 항목을 각각 참조하십시오.

가져온 신경망의 계층이 코드 생성을 지원한다면 해당 신경망에 대한 코드를 생성할 수 있습니다. MATLAB Coder 및 GPU Coder와 함께 사용해서 코드 생성을 지원하는 계층의 목록은 Supported Layers (MATLAB Coder) 항목과 Supported Layers (GPU Coder) 항목을 각각 참조하십시오. 각 내장 MATLAB 계층의 코드 생성 기능과 제한 사항에 관한 자세한 내용은 계층의 확장 기능 섹션을 참조하십시오. 예제는 코드 생성imageInputLayerGPU 코드 생성 항목을 참조하십시오.

GPU에 가져온 신경망 사용하기

importCaffeNetwork 함수는 GPU에서 실행되지 않습니다. 그러나, importCaffeNetwork 함수는 딥러닝을 위해 사전 훈련된 신경망을 GPU에서 사용할 수 있는 DAGNetwork 객체 또는 SeriesNetwork 객체로 가져옵니다.

  • classify를 사용하여 가져온 신경망으로 CPU 또는 GPU 중 하나에서 예측을 수행합니다. 하드웨어 요구 사항은 이름-값 쌍 인수 ExecutionEnvironment를 사용하여 지정하십시오. 출력값이 여러 개인 신경망의 경우, predict 함수를 사용하십시오.

  • predict를 사용하여 가져온 신경망으로 CPU 또는 GPU 중 하나에서 예측을 수행합니다. 하드웨어 요구 사항은 이름-값 쌍 인수 ExecutionEnvironment를 사용하여 지정하십시오. 출력값이 여러 개인 신경망의 경우, 이름-값 인수 ReturnCategoricaltrue로 지정하십시오.

  • 가져온 신경망을 trainnet 함수와 trainNetwork 함수를 사용하여 CPU 또는 GPU에서 훈련시킬 수 있습니다. 실행 환경 옵션을 비롯한 훈련 옵션을 지정하려면 trainingOptions 함수를 사용하십시오. 하드웨어 요구 사항은 이름-값 쌍 인수 ExecutionEnvironment를 사용하여 지정하십시오. 훈련을 가속화하는 방법에 대한 자세한 내용은 Scale Up Deep Learning in Parallel, on GPUs, and in the Cloud 항목을 참조하십시오.

GPU를 사용하려면 Parallel Computing Toolbox™ 라이선스와 지원되는 GPU 장치가 필요합니다. 지원되는 장치에 대한 자세한 내용은 GPU 연산 요구 사항 (Parallel Computing Toolbox) 항목을 참조하십시오.

확장 기능

버전 내역

R2017a에 개발됨

모두 확장