Main Content

importCaffeLayers

Caffe에서 컨벌루션 신경망 계층 가져오기

설명

예제

layers = importCaffeLayers(protofile)은 Caffe [1] 신경망의 계층을 가져옵니다. 이 함수는 .prototxt 파일 protofile에 정의된 계층을 반환합니다.

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

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

layers = importCaffeLayers(protofile,'InputSize',sz)은 입력 데이터의 크기를 지정합니다. .prototxt 파일이 입력 데이터의 크기를 지정하지 않는 경우, 직접 입력 크기를 지정해야 합니다.

예제

모두 축소

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

명령줄에 importCaffeLayers를 입력하여 필요한 지원 패키지를 다운로드합니다.

importCaffeLayers

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

가져올 예제 파일 'digitsnet.prototxt'를 지정합니다.

protofile = 'digitsnet.prototxt';

신경망 계층을 가져옵니다.

layers = importCaffeLayers(protofile)
layers = 

  1x7 Layer array with layers:

     1   'testdata'   Image Input             28x28x1 images
     2   'conv1'      Convolution             20 5x5x1 convolutions with stride [1  1] and padding [0  0]
     3   'relu1'      ReLU                    ReLU
     4   'pool1'      Max Pooling             2x2 max pooling with stride [2  2] and padding [0  0]
     5   'ip1'        Fully Connected         10 fully connected layer
     6   'loss'       Softmax                 softmax
     7   'output'     Classification Output   crossentropyex with 'class1', 'class2', and 8 other classes

입력 인수

모두 축소

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

예: 'digitsnet.prototxt'

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

예: [28 28 1]

출력 인수

모두 축소

신경망 아키텍처로, Layer 배열 또는 LayerGraph 객체로 반환됩니다. 입력값으로 컬러 영상을 받는 Caffe 신경망의 경우 영상이 BGR 형식이어야 합니다. 가져오기 중에 importCaffeLayers 함수는 가져온 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) 항목을 참조하십시오.

importCaffeLayers 함수는 신경망 아키텍처 layersLayer 또는 LayerGraph 객체로 반환합니다. 코드 생성 시, 먼저 가져온 Layer 또는 LayerGraph 객체를 신경망으로 변환해야 합니다. assembleNetwork를 사용하여 Layer 또는 LayerGraph 객체를 DAGNetwork 또는 SeriesNetwork 객체로 변환합니다. dlnetwork를 사용하여 Layer 또는 LayerGraph 객체를 dlnetwork로 변환합니다. 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에 가져온 신경망 계층 사용하기

importCaffeLayers 함수는 GPU에서 실행되지 않습니다. 그러나, importCaffeLayers 함수는 딥러닝을 위해 사전 훈련된 신경망의 계층을 GPU에서 사용할 수 있는 Layer 배열 또는 LayerGraph 객체로 가져옵니다.

  • assembleNetwork를 사용하여 가져온 계층을 DAGNetwork 객체로 변환합니다. 그런 다음 DAGNetwork 객체에 대해 classify를 사용하여 CPU 또는 GPU 중 하나에서 클래스 레이블을 예측할 수 있습니다. 하드웨어 요구 사항은 이름-값 쌍 인수 ExecutionEnvironment를 사용하여 지정하십시오. 출력값이 여러 개인 신경망의 경우, predict 함수를 사용하고 이름-값 인수 ReturnCategoricaltrue로 지정하십시오.

  • dlnetwork를 사용하여 가져온 계층을 dlnetwork 객체로 변환합니다. 그런 다음 dlnetwork 객체에 대해 predict를 사용하여 CPU 또는 GPU 중 하나에서 클래스 레이블을 예측할 수 있습니다. predict 함수는 입력 데이터 또는 신경망 파라미터 중 하나가 GPU에 저장된 경우 GPU에서 실행됩니다.

    • minibatchqueue를 사용하여 입력 데이터의 미니 배치를 처리하고 관리하면 GPU를 사용할 수 있는 경우 minibatchqueue 객체는 기본적으로 출력값을 GPU 배열로 변환합니다.

    • dlupdate를 사용하여 dlnetwork 객체의 학습 가능한 파라미터를 GPU 배열로 변환합니다.

      net = dlupdate(@gpuArray,net)

  • 가져온 계층을 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에 개발됨