주요 콘텐츠

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

지원되는 신경망, 계층 및 클래스

R2025b

GPU Coder™는 시리즈 신경망 및 유방향 비순환 그래프(DAG) 신경망을 위한 코드 생성을 지원합니다. 이 페이지에서는 지원되는 딥러닝 신경망, 계층 및 클래스 목록을 제공합니다.

참고로, 코드 생성기는 문자를 로캘 설정에 따라 결정되는 8비트 ASCII 코드 집합으로 표현합니다. 따라서 클래스 이름, 계층 이름, 계층 설명 또는 신경망 이름에 비ASCII 문자를 사용하면 오류가 발생할 수 있습니다. 자세한 내용은 코드 생성 시 문자 인코딩 항목을 참조하십시오.

지원되는 사전 훈련된 신경망

Deep Learning Toolbox™를 사용하여 하나의 CPU, 하나의 GPU 또는 복수의 GPU에서 신경망을 훈련시키거나 표에 나열된 사전 훈련된 신경망을 사용하여 CUDA® 코드를 생성할 수 있습니다.

다음의 사전 훈련된 신경망은 Deep Learning Toolbox에서 제공되며 코드 생성을 지원합니다. 이들 사전 훈련 신경망을 imagePretrainedNetwork (Deep Learning Toolbox) 함수를 사용하여 dlnetwork (Deep Learning Toolbox) 객체로 불러와 코드 생성에 사용할 수 있습니다. 참고로, 코드 생성에서는 imagePretrainedNetwork 함수의 이름-값 인수 Weights를 "none"으로 설정하는 것을 지원하지 않습니다. 예를 들어, 다음 코드를 사용하여 사전 훈련된 GoogLeNet 신경망을 볼러옵니다.

net = imagePretrainedNetwork("googlenet")

imagePretrainedNetwork 모델 이름 인수CUDATensorRT와 cuDNN

"alexnet"

"darknet19"

"darknet53"

"densenet201"

"efficientnetb0"

"googlenet"

"inceptionresnetv2"

"inceptionv3"

"mobilenetv2"

"nasnetlarge"

 

"nasnetmobile"

 

"resnet18"

"resnet50"

"resnet101"

"shufflenet"

 

"squeezenet"

"vgg16"

"vgg19"

"xception"

또한, 이러한 함수를 사용하여 코드 생성을 위한 신경망을 만들 수 있습니다.

신경망 이름CUDATensorRT와 cuDNN

Caffe 신경망

importCaffeNetwork (Deep Learning Toolbox) 항목을 참조하십시오.

DeepLab v3+ 네트워크

deeplabv3plus (Computer Vision Toolbox)

 

지원되는 계층

다음 계층은 명시된 타깃 딥러닝 라이브러리에 대해 GPU Coder의 코드 생성이 지원됩니다.

참고

다음 표에서 정보 아이콘()은 네트워크, 계층 또는 클래스가 제한된 코드 생성 기능을 가지고 있음을 나타냅니다. 오류 및 예기치 않은 동작이 발생할 수 있습니다. 자세한 내용은 해당 네트워크, 계층 또는 클래스 페이지의 확장 기능 섹션을 참조하세요.

입력 계층

계층 이름CUDATensorRTcuDNN

imageInputLayer (Deep Learning Toolbox)

sequenceInputLayer (Deep Learning Toolbox)

featureInputLayer (Deep Learning Toolbox)

컨벌루션 계층과 완전 연결 계층

계층 이름CUDATensorRT와 cuDNN

convolution1dLayer (Deep Learning Toolbox)

 

convolution2dLayer (Deep Learning Toolbox)

fullyConnectedLayer (Deep Learning Toolbox)

groupedConvolution2dLayer (Deep Learning Toolbox)

 

transposedConv1dLayer (Deep Learning Toolbox)

 

transposedConv2dLayer (Deep Learning Toolbox)

 

시퀀스 계층

계층 이름CUDATensorRT와 cuDNN

sequenceInputLayer (Deep Learning Toolbox)

bilstmLayer (Deep Learning Toolbox)

flattenLayer (Deep Learning Toolbox)

gruLayer (Deep Learning Toolbox)

lstmLayer (Deep Learning Toolbox)

wordEmbeddingLayer (Text Analytics Toolbox)

활성화 계층

계층 이름CUDATensorRT와 cuDNN

clippedReluLayer (Deep Learning Toolbox)

eluLayer (Deep Learning Toolbox)

leakyReluLayer (Deep Learning Toolbox)

preluLayer (Deep Learning Toolbox)

reluLayer (Deep Learning Toolbox)

gelu (Deep Learning Toolbox)

softplusLayer (Deep Learning Toolbox)

swishLayer (Deep Learning Toolbox)

tanhLayer (Deep Learning Toolbox)

유틸리티 계층

계층 이름CUDATensorRT와 cuDNN

batchNormalizationLayer (Deep Learning Toolbox)

crop2dLayer (Deep Learning Toolbox)

crossChannelNormalizationLayer (Deep Learning Toolbox)

dropoutLayer (Deep Learning Toolbox)

groupNormalizationLayer (Deep Learning Toolbox)

instanceNormalizationLayer (Deep Learning Toolbox)

istftLayer (Signal Processing Toolbox)

 

layerNormalizationLayer (Deep Learning Toolbox)

modwtLayer (Wavelet Toolbox)

 

reshapeLayer (Deep Learning Toolbox)

 

scalingLayer (Deep Learning Toolbox)

spatialDropoutLayer (Deep Learning Toolbox)

stftLayer (Signal Processing Toolbox)

 

풀링 및 언풀링 계층

계층 이름CUDATensorRT와 cuDNN
adaptiveAveragePooling2dLayer (Deep Learning Toolbox)

averagePooling1dLayer (Deep Learning Toolbox)

 

averagePooling2dLayer (Deep Learning Toolbox)

globalAveragePooling1dLayer (Deep Learning Toolbox)

 

globalAveragePooling2dLayer (Deep Learning Toolbox)

globalMaxPooling1dLayer (Deep Learning Toolbox)

 

globalMaxPooling2dLayer (Deep Learning Toolbox)

maxPooling1dLayer (Deep Learning Toolbox)

 

maxPooling2dLayer (Deep Learning Toolbox)

maxUnpooling2dLayer (Deep Learning Toolbox)

 

결합 계층

계층 이름CUDATensorRT와 cuDNN

additionLayer (Deep Learning Toolbox)

concatenationLayer (Deep Learning Toolbox)

depthConcatenationLayer (Deep Learning Toolbox)

트랜스포머 계층

계층 이름CUDATensorRT와 cuDNN

AttentionLayer (Deep Learning Toolbox)

 

embeddingConcatenationLayer (Deep Learning Toolbox)

 

indexing1dLayer (Deep Learning Toolbox)

 

patchEmbeddingLayer (Computer Vision Toolbox)

 

PositionEmbeddingLayer (Deep Learning Toolbox)

 

selfAttentionLayer (Deep Learning Toolbox)

 

객체 검출 계층

계층 이름CUDATensorRT와 cuDNN

depthToSpace2dLayer (Image Processing Toolbox)

spaceToDepthLayer (Image Processing Toolbox)

 

ssdMergeLayer (Computer Vision Toolbox)

yolov2TransformLayer (Computer Vision Toolbox)

출력 계층

계층 이름CUDATensorRT와 cuDNN

classificationLayer (Deep Learning Toolbox)

regressionLayer (Deep Learning Toolbox)

sigmoidLayer (Deep Learning Toolbox)

softmaxLayer (Deep Learning Toolbox)

Custom Output Layer (Deep Learning Toolbox)

  • nnet.layer.ClassificationLayer 함수로 생성된 사용자 지정 분류 출력 계층 또는 nnet.layer.RegressionLayer 함수로 생성된 사용자 지정 회귀 출력 계층을 포함한 출력 계층.

  • 사용자 지정 분류 출력 계층을 정의하고 손실 함수를 지정하는 방법을 보여주는 예제는 사용자 지정 분류 출력 계층 정의하기 (Deep Learning Toolbox) 항목을 참조하십시오.

  • 사용자 지정 회귀 출력 계층을 정의하고 손실 함수를 지정하는 방법을 보여주는 예제는 사용자 지정 회귀 출력 계층 정의하기 (Deep Learning Toolbox) 항목을 참조하십시오.

사용자 지정 Keras 계층

계층 이름CUDATensorRT와 cuDNN

nnet.keras.layer.ClipLayer (Deep Learning Toolbox)

nnet.keras.layer.FlattenCStyleLayer (Deep Learning Toolbox)

nnet.keras.layer.GlobalAveragePooling2dLayer (Deep Learning Toolbox)

nnet.keras.layer.PreluLayer (Deep Learning Toolbox)

nnet.keras.layer.SigmoidLayer (Deep Learning Toolbox)

nnet.keras.layer.TanhLayer (Deep Learning Toolbox)

nnet.keras.layer.TimeDistributedFlattenCStyleLayer (Deep Learning Toolbox)

nnet.keras.layer.ZeroPadding2dLayer (Deep Learning Toolbox)

사용자 지정 ONNX 계층

계층 이름CUDATensorRT와 cuDNN

nnet.onnx.layer.ClipLayer (Deep Learning Toolbox)

nnet.onnx.layer.ElementwiseAffineLayer (Deep Learning Toolbox)

nnet.onnx.layer.FlattenInto2dLayer (Deep Learning Toolbox)

nnet.onnx.layer.FlattenLayer (Deep Learning Toolbox)

nnet.onnx.layer.GlobalAveragePooling2dLayer (Deep Learning Toolbox)

nnet.onnx.layer.IdentityLayer (Deep Learning Toolbox)

nnet.onnx.layer.PreluLayer (Deep Learning Toolbox)

nnet.onnx.layer.SigmoidLayer (Deep Learning Toolbox)

nnet.onnx.layer.TanhLayer (Deep Learning Toolbox)

nnet.onnx.layer.VerifyBatchSizeLayer (Deep Learning Toolbox)

사용자 지정 계층

계층 이름CUDATensorRT와 cuDNN

Custom layers

  • 사용자 지정 계층의 출력은 고정 크기 배열이어야 합니다.

  • coder.gpuConfig에서 MallocMode 속성을 "unified"로 설정하면 추가 메모리 복사가 필요하므로 성능이 더 느려집니다. "discrete"를 사용할 것을 권장합니다. GPU 메모리 할당에 대한 자세한 내용은 항목을 참조하십시오.

  • cuDNN 타깃은 사용자 지정 계층에 대해 행 우선 방식과 열 우선 방식의 코드 생성을 둘 다 지원합니다. TensorRT 타깃은 열 우선 코드 생성만 지원합니다.

  • 사용자 지정 계층에는 %#codegen 프라그마가 포함되어야 합니다.

  • 사용자 지정 계층과 LSTM 또는 GRU 계층을 포함하는 시퀀스 신경망은 지원되지 않습니다.

  • 다음과 같은 경우 사용자 지정 계층에 dlarray를 전달할 수 있습니다.

    • 사용자 지정 계층이 dlnetwork에 있습니다.

    • 사용자 지정 계층이 DAG 또는 시리즈 신경망에 있으며 nnet.layer.Formattable에서 상속되거나 역방향 전파가 없습니다.

  • 지원되지 않는 dlarray 메서드의 경우 dlarray에서 기본 데이터를 추출하고 계산을 수행한 후 데이터를 dlarray 객체로 재구성해야 합니다. 예를 들면 다음과 같습니다.

    function Z = predict(layer, X)
    
    if coder.target('MATLAB')
       Z = doPredict(X);
    else
       if isdlarray(X)
          X1 = extractdata(X);
          Z1 = doPredict(X1);
          Z = dlarray(Z1);
      else
          Z = doPredict(X);
      end
    end
    
    end
    

지원되는 클래스

다음 클래스는 명시된 타깃 딥러닝 라이브러리에 대해 GPU Coder의 코드 생성이 지원됩니다.

이름CUDATensorRT와 cuDNN

dlnetwork (Deep Learning Toolbox)

DAGNetwork (Deep Learning Toolbox)

pointPillarsObjectDetector (Point Cloud Toolbox)

SeriesNetwork (Deep Learning Toolbox)

ssdObjectDetector (Computer Vision Toolbox)

yolov2ObjectDetector (Computer Vision Toolbox)

yolov3ObjectDetector (Computer Vision Toolbox)

yolov4ObjectDetector (Computer Vision Toolbox)

yoloxObjectDetector

peopleDetector (Computer Vision Toolbox) (R2025a 이후)

 

참고 항목

함수

객체

도움말 항목