분류 전체보기

반응형

    OpenVINO 뽀개기 (2) OpenVINO Inference

     저번 글에 이어 이번에는 OpenVINO모델을 Inference하는 방법에 대해 설명드리도록 하겠습니다. 1. OpenVINO Runtime OpenVINO (IR)모델을 inference할 수 있도록 하는 것이 OpenVINO runtime입니다. OpenVINO runtime은 C, python의 binding과 함께 C++ library로 구현되어 있습니다. 그리고 위 그림에서 알 수 있듯이 OpenVINO runtime을 통해 IR모델 뿐만아니라 ONNX, PaddlePaddle(바이두)모델도 Inference가능하도록 API를 제공합니다. 또한 plugin architecture를 사용하기 때문에 해당 plugin들은 각 hardware device에 맞춰진 complete한 구현이 되어있습..

    OpenVINO 뽀개기 (1) OpenVINO 이해 및 변환

    1. OpenVINO란? OpenVINO는 intel에서 주도적으로 진행 중인 프로젝트입니다. OpenVINO는 다양한 Deep Learning(DL) framework(e.g. PyTorch, TF)의 모델들을 OPenVINO 모델로 변환하여 intel device에 최적화된 inference를 할 수 있도록 해줍니다. 그래서 intel cpu나 gpu에서 DL 모델을 inference할 경우가 생기신다면 OpenVINO를 사용하셔야 latency성능이 좋아집니다! 추가적으로 OpenVINO는 다음과 같은 특성은 제공합니다. Pruning, Quantization을 통한 model size 및 inference 최적화 Model의 preprocessing, postprocessing 기능 제공 int..

    TFLite 뽀개기 (4) XNNPACK 이해 및 성능 비교

    1. XNNPACK이란? XNNPACK은 아래와 같은 다양한 device(architecture)를 위해 floating-point neural netowrk의 inference operator를 최적화한 library입니다. (floating-point란 fp32, fp16 모델만 가속화 가능하다는 뜻입니다.) 한마디로 DL 모델의 inference속도를 가속화 해주는 library입니다. Desktop기준으로 XNNPACK을 사용하기 위해서는 bazel build할때 XNNPACK사용에 대한 명시를 해주어야 합니다. 그리고 TFLite모델에만 사용이 가능합니다. 또 다른 특징으로는 XNNPACK은 PAD operator와 CONV_2D operator(with VALID padding)을 감지하여 하..

    [NVIDIA] TensorRT inference 코드 및 예제 (feat. yolov7)

    이전의 TensorRT plugin 사용하는 방법을 설명드렸는데요. TRT모델로 inference하는 코드에 대한 설명이 부족하고 저도 잘 이해하지 못한 부분이 있어 이번 글에서 설명드립니다. 0. Inference용 모델 및 개발 환경 Inference를 위해 사용한 모델은 YOLOv7 모델입니다. 모델은 yolov7.trt 다운가능하며 input의 shape은 (1,3,640,640)로 설정하였으며 output은 총 4개로 나뉘면 각각 num_detections(detection된 object개수), nmsed_boxes(object의 bounding box 좌표), nmsed_scores(object의 confidence score), nmsed_classes(object의 class)입니다. ou..

    [NVIDIA] TensorRT plugin 사용 및 예제 (feat. yolov7)

    1. TensorRT Plugin이란? TensorRT는 C++ library이고 nvidia GPUs와 deep learning accelerator를 제공함으로써 뛰어난 performance를 제공합니다. 그래서 nvidia GPU가 장착된 서버를 쓰신다면 TensorRT(.trt)모델로 변환하여 inference하는 것이 효과적입니다. 추가로 TensorRT에서는 plugin기능을 제공하는데요. Plugin을 사용하여 model의 추가적인 연산(preprocess, postprocess)를 C++, cuda programming 으로 대체할 수 있어서 (1) 코드의 간결화 (2) 연산속도의 효율의 장점이 있습니다. 대표적인 예시로 대부분의 AI개발자분들은 detection model의 NMS(Non..

    YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors 논문 리뷰

    오늘은 현시점에서 YOLO계열 중 가장 성능이 좋은 YOLOv7 논문 리뷰해보겠습니다. 1. Introduction 논문 제목을 보았을 때 가장 먼저 눈에 띄는 것은 "bag-of-freebies"일텐데요. 이게 무엇이냐!? bag-of-freebies란? inference시에 추가적인 cost비용 없이 네트워크의 성능을 향상하기 위한 방법 (e.g. reparameterization, data augmentation, bbox regression, label smoothing) 그래서 저자들은 inference cost를 증가시키지 않는 training optimization 방법들을 제안하여 성능을 올리는 것을 목적으로 합니다.(해당 optimization은 cost가 들 수 있음) 그래서 해당 방..

반응형