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.