Hailo Model Zoo에서 모델 컴파일 시 사용되는 모델 명세 파일 내 속성에 대한 정리
Hailo Model Zoo YAML
- Hailo Model Zoo를 이용해 모델을 최적화 및 양자화할 때, 사용되는 모델 명세 파일.
- 최적화 명령어 파일인
.alls
의 경로, 데이터셋의 경로, 네트워크 내 전/후처리 방법에 대한 명세가 포함됨. - Hailo Model Zoo v2.12.0 문서를 바탕으로 작성됨.
YAML Properties
network
- network_name ([‘string’, ‘null’]) : 네트워크 이름. Default: None
paths
- network_path (array) : ONNX, TF, CKPT 등 network 파일 경로.
- alls_script ([‘string’, ‘null’]) : 양자화(최적화) 및 컴파일 시 사용되는 alls 파일 디렉토리.
parser
- nodes ([‘array’, ‘null’]) : parsing을 위한 [start node, [end nodes]] 리스트.
- ex) [“resnet_v1_50/conv1/Pad”, “resnet_v1_50/predictions/Softmax”].
- normalization_params : Hailo 칩에서 실행할 정규화 추가.
- ex) normalization_params : {“normalize_in_net”: true, “mean_list”: [123.68, 116.78, 103.94], “std_list”: [58.395, 57.12, 57.375]}
- normalize_in_net (boolean) : 네트워크에 on chip 정규화가 포함되어 있는지 여부. 포함되어 있는 경우에는
alls
파일에 명시되어 있음. 만약alls
에 필요한 정규화가 포함되어 있지 않으면 Model Zoo는 자동으로 입력데이터에 정규화를 적용함. Default: Fasle. - mean_list ([‘array’, ‘null’]) : normalizae_in_net=false 일 때만 사용됨. 정규화에 사용되는 채널별 평균값. Model Zoo가 해당 값으로 자동으로 calibration 세트에 대해 정규화를 수행함. Default: None.
- std_list ([‘array’, ‘null’]) : normalizae_in_net=false 일 때만 사용됨. 정규화에 사용되는 채널별 표준편차 값. mean_list와 같음. Default: None.
- start_node_shapes ([‘array’, ‘null’]) : 명시적으로 사용하지 않는 지원되는 모델의 입력 모양 설정(?).
- ex) 모델의 입력 모양이 [?, ?, ?, 3] 일 때, 입력 모양을 {“Preprocessor/sub:0”: [1, 512, 512, 3]} 으로 설정할 수 있음. Default: None.
preprocessing
- network_type ([‘string, ‘null’]) : 네트워크의 타입. Default: classification.
- meta_arch ([‘string, ‘null’]) : 네트워크 preprocessing(전처리) 메타 구조
- ex) mobilenet_ssd, efficientnet, etc. Default: None.
- padding_color ([‘integer’, ‘null’]) : 학습 환경에서, 입력 이미지가 리사이즈 될때 생기는 패딩 영역의 색상값. Default: 114 for YOLO architectures, 0 for others.
quantization
- calib_set ([‘array’, ‘null’]) : calibration set 경로 리스트.
- ex) [‘models_files/imagenet/2021-06-20/imagenet_calib.tfrecord’]. Default: None.
- calib_set_name ([‘string’, ‘null’]) : calibartion에 사용되는 데이터셋의 이름. Default (null) 일 때는 evaluation 데이터셋 이름이 사용됨. Default: None.
postprocessing
- meta_arch ([‘string, ‘null’]) : 네트워크 postprocessing(후처리) 메타 구조.
- ex) yolo_v3, yolo_v5, etc. Default: None.
- postprocess_config_file ([‘string’, ‘null’]) : 후처리 config 파일의 경로
- ex) NMS를 Hailo-8로 오프로드하기 위한 용도 등. Default: None.
- device_pre_post_layers : 칩에서 후처리를 사용할지 아니면 호스트에서 수행할지 여부.
- bilinear (boolean) : bilinear PPU 레이어 활성화. Default : False.
- argmax (boolean) : Argmax PPU 레이어 활성화. Default : False.
- softmax (boolean) : Softmax PPU 레이어 활성화. Default : False.
- nms (boolean) : NMS PPU 레이어 및 관련 디코딩 레이어 활성화. Default : False.
- PPU 레이어란? : pre/post processing unit Usually, the non-neural processing is performed on the host processor (CPU), but Hailo’s software also supports offloading some pre- and post-processing operations onto a dedicated pre/post processing unit (PPU) on the chip itself. 일반적으로 비신경망 처리는 호스트 프로세서(CPU)에서 수행되지만, Hailo의 소프트웨어는 일부 전처리 및 후처리 작업을 칩 자체의 전용 전/후처리 장치(PPU)로 오프로드하는 기능도 지원합니다.
evaluation
- dataset_name ([‘string’, ‘null’]) : evaluation으로 사용될 데이터셋의 이름. Default: None.
- data_set ([‘string’, ‘null’]) : evaluation을 위한 TFrecord 데이터셋 파일 경로. Default: None.
- classes ([‘integer’, ‘null’]) : 모델의 클래스 개수. Default: 1000.
- label_offset ([‘integer’, ‘null’]) : 레이블 오프셋(오프셋 부터 레이블 인덱스 시작). Default: 0.
- network_type ([‘string, ‘null’]) : evaluation을 위한 네트워크 타입. 평가 타입이 preprocessing 의 타입과 다른 경우 이 필드를 사용한다. Default: None.
hn_editor
- yuv2rgb (boolean) : YUV to RGB 레이어를 추가함. Default :False.
- filp (boolean) : 입력을 90도 회전함. Default :False.
- input_resize : 네트워크의 시작부분에 resize bilinear 레이러를 추가함.
- enabled (boolean) : enabled 할지 disabled 할지. Default: False.
- input_shape (array) : [H, W]에서 크기 조정을 위한 input shape 리스트.
- bgr2rgb (boolean) : BGR to RGB 레이어를 추가함. 일부 학습 프레임워크에서는 BGR 입력으로 모델을 학습함. 네트워크에 RGB 이미지를 공급하려면(MZ에서든 사용자 애플리케이션에서든) 이미지를 RGB에서 BGR로 변환해야 한다. ModelZoo는 이 레이어를 온칩 모델에 자동으로 삽입합니다. 이미 관련 재교육 도커에 해당하는 yaml 파일에 “bgr2rgb” 플래그를 설정했습니다.Default :False.