quantizationDetails
설명
예제
이 예제에서는 신경망의 양자화 세부 정보를 표시하는 방법을 보여줍니다.
사전 훈련된 신경망을 불러옵니다. net
은 MerchData
데이터 세트의 영상을 분류하기 위해 전이 학습을 사용하여 재훈련된 SqueezeNet 컨벌루션 신경망입니다.
load squeezedlnetmerch
net
net = dlnetwork with properties: Layers: [67×1 nnet.cnn.layer.Layer] Connections: [74×2 table] Learnables: [52×3 table] State: [0×3 table] InputNames: {'data'} OutputNames: {'prob'} Initialized: 1 View summary with summary.
quantizationDetails 함수를 사용하여 신경망이 양자화되지 않았는지 확인합니다.
qDetails_original = quantizationDetails(net)
qDetails_original = struct with fields:
IsQuantized: 0
TargetLibrary: ""
QuantizedLayerNames: [0×0 string]
QuantizedLearnables: [0×3 table]
원래 신경망이 단정밀도 부동소수점 데이터형을 사용하므로 IsQuantized
필드는 0
(false)을 반환합니다.
MerchData 영상의 압축을 풀고 영상 데이터저장소로 불러옵니다. augmentedImageDatastore 객체를 정의하여 신경망 데이터의 크기를 조정하고, 데이터를 양자화에 사용할 보정 데이터 세트와 검증 데이터 세트로 분할합니다.
unzip('MerchData.zip'); imds = imageDatastore('MerchData', ... 'IncludeSubfolders',true, ... 'LabelSource','foldernames'); [calData, valData] = splitEachLabel(imds, 0.7, 'randomized'); aug_calData = augmentedImageDatastore([227 227], calData); aug_valData = augmentedImageDatastore([227 227], valData);
dlquantizer
객체를 만들고 양자화할 신경망을 지정합니다. 실행 환경을 MATLAB으로 설정합니다. MATLAB 실행 환경을 사용하면 fi
고정소수점 데이터형을 사용하여 양자화가 수행됩니다(Fixed-Point Designer™ 라이선스 필요).
quantObj = dlquantizer(net,'ExecutionEnvironment','MATLAB');
calibrate 함수를 사용하여 샘플 입력값으로 신경망을 실행하고 범위 정보를 수집합니다.
calResults = calibrate(quantObj,aug_calData);
quantize
메서드를 사용하여 신경망 객체를 양자화하고 시뮬레이션이 가능한 양자화된 신경망을 반환합니다.
qNet = quantize(quantObj)
qNet = Quantized dlnetwork with properties: Layers: [67×1 nnet.cnn.layer.Layer] Connections: [74×2 table] Learnables: [52×3 table] State: [0×3 table] InputNames: {'data'} OutputNames: {'prob'} Initialized: 1 View summary with summary. Use the quantizationDetails function to extract quantization details.
quantizationDetails
메서드를 사용하여 양자화 세부 정보를 추출합니다.
qDetails = quantizationDetails(qNet)
qDetails = struct with fields:
IsQuantized: 1
TargetLibrary: "none"
QuantizedLayerNames: [56×1 string]
QuantizedLearnables: [52×3 table]
QuantizedLayerNames
필드를 검사하여 양자화된 계층들의 목록을 확인합니다.
qDetails.QuantizedLayerNames
ans = 56×1 string
"data"
"conv1"
"relu_conv1"
"pool1"
"fire2-squeeze1x1"
"fire2-relu_squeeze1x1"
"fire2-expand1x1"
"fire2-relu_expand1x1"
"fire2-expand3x3"
"fire2-relu_expand3x3"
"fire3-squeeze1x1"
"fire3-relu_squeeze1x1"
"fire3-expand1x1"
"fire3-relu_expand1x1"
"fire3-expand3x3"
"fire3-relu_expand3x3"
"fire4-squeeze1x1"
"fire4-relu_squeeze1x1"
"fire4-expand1x1"
"fire4-relu_expand1x1"
"fire4-expand3x3"
"fire4-relu_expand3x3"
"fire5-squeeze1x1"
"fire5-relu_squeeze1x1"
"fire5-expand1x1"
"fire5-relu_expand1x1"
"fire5-expand3x3"
"fire5-relu_expand3x3"
"fire6-squeeze1x1"
"fire6-relu_squeeze1x1"
⋮
QuantizedLearnables
필드를 검사하여 신경망의 학습 가능한 파라미터들의 양자화된 값을 확인합니다.
qDetails.QuantizedLearnables
ans=52×3 table
Layer Parameter Value
__________________ _________ ________________________
"conv1" "Weights" {3×3×3×64 embedded.fi}
"conv1" "Bias" {1×1×64 embedded.fi}
"fire2-squeeze1x1" "Weights" {1×1×64×16 embedded.fi}
"fire2-squeeze1x1" "Bias" {1×1×16 embedded.fi}
"fire2-expand1x1" "Weights" {1×1×16×64 embedded.fi}
"fire2-expand1x1" "Bias" {1×1×64 embedded.fi}
"fire2-expand3x3" "Weights" {3×3×16×64 embedded.fi}
"fire2-expand3x3" "Bias" {1×1×64 embedded.fi}
"fire3-squeeze1x1" "Weights" {1×1×128×16 embedded.fi}
"fire3-squeeze1x1" "Bias" {1×1×16 embedded.fi}
"fire3-expand1x1" "Weights" {1×1×16×64 embedded.fi}
"fire3-expand1x1" "Bias" {1×1×64 embedded.fi}
"fire3-expand3x3" "Weights" {3×3×16×64 embedded.fi}
"fire3-expand3x3" "Bias" {1×1×64 embedded.fi}
"fire4-squeeze1x1" "Weights" {1×1×128×32 embedded.fi}
"fire4-squeeze1x1" "Bias" {1×1×32 embedded.fi}
⋮
입력 인수
양자화된 신경망으로, dlnetwork
, SeriesNetwork
또는 DAGNetwork
객체로 지정됩니다.
참고 항목
앱
함수
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
웹사이트 선택
번역된 콘텐츠를 보고 지역별 이벤트와 혜택을 살펴보려면 웹사이트를 선택하십시오. 현재 계신 지역에 따라 다음 웹사이트를 권장합니다:
또한 다음 목록에서 웹사이트를 선택하실 수도 있습니다.
사이트 성능 최적화 방법
최고의 사이트 성능을 위해 중국 사이트(중국어 또는 영어)를 선택하십시오. 현재 계신 지역에서는 다른 국가의 MathWorks 사이트 방문이 최적화되지 않았습니다.
미주
- América Latina (Español)
- Canada (English)
- United States (English)
유럽
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)