测验:校准数据决定范围
한국어 원문으로 표시합니다.
CalibrationDataReader 의 get_next() 가 자료를 다 넘긴 뒤에 해야 할 일은?
- 예외를 던져 변환기에 끝났음을 알린다
- 처음부터 다시 돌려 같은 자료를 계속 공급한다
- None 을 돌려주고 그 뒤에 또 불려도 계속 None 을 돌려준다
- 빈 사전을 돌려주어 더 줄 자료가 없음을 표시한다
보정 자료가 실제 분포보다 훨씬 좁을 때 나타나는 증상으로 가장 정확한 것은?
- 보정 범위를 벗어난 입력이 자료형 끝에 붙어 큰 입력에서만 크게 틀린다
- 모든 입력에서 오차가 고르게 조금씩 커진다
- 변환 자체가 실패하고 모델 파일이 만들어지지 않는다
- 가중치의 정수 변환이 건너뛰어져 파일 크기가 줄지 않는다
좁은 보정 자료를 512배로 늘려도 맞는 분포로 몇 묶음만 준 것보다 못했다. 이것이 말해 주는 것은?
- 512묶음도 아직 모자라며 더 늘리면 언젠가는 따라잡는다
- 관찰 범위는 표본 수보다 자료의 분포가 정한다
- 최솟값과 최댓값 대신 분위수를 쓰는 보정 방식이어야 한다
- 표본을 늘릴수록 평균으로 몰려 범위가 오히려 좁아진다
같은 보정 자료로 QDQ 형식과 QOperator 형식을 각각 뽑아 같은 입력을 넣었더니 출력이 조금 달랐다. 이것은?
- 보정 자료가 두 번의 변환에서 다르게 흘러간 것이므로 공급기를 고쳐야 한다
- QOperator 형식이 영점을 버리기 때문에 생기는 계통 오차다
- 평가 배치가 보정 범위를 벗어나 한쪽에서만 포화가 난 것이다
- 정상이다. 스케일은 같지만 QDQ 는 실행 방식을 런타임에 맡기므로 원소별로 달라질 수 있다
양자화된 모델 파일만 손에 있을 때 보정이 어디까지 관찰했는지 확인하는 방법은?
- 모델의 metadata_props 에 변환기가 보정 자료 경로를 남긴다
- 입력 뒤 QuantizeLinear 의 스케일에 눈금 수를 곱하면 관찰 범위의 폭이 나온다
- 가중치 초기자의 최솟값과 최댓값을 보면 활성 범위를 알 수 있다
- 그래프의 DequantizeLinear 개수가 보정 묶음 수와 같다
보정을 대충 한 정적 양자화 모델이 같은 모델의 동적 양자화보다 오차가 컸다. 이 결과는?
- 측정이 잘못된 것이다. 정적은 정의상 동적보다 정확하다
- 동적 양자화가 가중치를 더 정밀하게 다루기 때문에 생기는 차이다
- 충분히 일어날 수 있다. 정적의 정확도는 보정 자료의 함수다
- QDQ 형식을 써서 생긴 것이며 QOperator 로 바꾸면 뒤집힌다