Skip to content

Instantly share code, notes, and snippets.

View daniil-lyakhov's full-sized avatar
🦄

Daniil Lyakhov daniil-lyakhov

🦄
View GitHub Profile
@daniil-lyakhov
daniil-lyakhov / yolo_v8_torch_fx_one_inp.py
Created June 19, 2024 12:51
Input difference between Yolov8 and Yolov8 compiled by the `torch.compile`
# torch==2.3.1
# ultralytics==8.2.35
import torch
from ultralytics.models.yolo import YOLO
torch.manual_seed(42)
def run_yolo(torch_fx, inputs):
yolo_model = YOLO("yolov8n")
@daniil-lyakhov
daniil-lyakhov / yolo_v8_torch_fx_val.py
Last active June 19, 2024 11:50
Reproducer to show poor compiled YoloV8 model metrics
# torch==2.3.1
# ultralytics==8.2.35
from typing import Dict, Tuple
import numpy as np
import torch
from tqdm import tqdm
from ultralytics.data.utils import check_det_dataset
from ultralytics.engine.validator import BaseValidator as Validator
from ultralytics.models.yolo import YOLO
import sys
import json
from collections import defaultdict
import numpy as np
def main():
path = sys.argv[1]
with open(path, 'r') as f:
data = json.load(f)
import os
import sys
import json
import xml.etree.ElementTree as ET
def get_json_name_map(model_path_before, model_path_after, output_path):
attrs_to_check = ['type']
attr_to_map = 'name'
root_before = ET.parse(model_path_before).getroot()
import xml.etree.ElementTree as ET
root = ET.parse('openvino.xml').getroot()
layers = root[0]
for idx, l in enumerate(layers):
if l.get('type') == 'Interpolate':
if layers[idx + 1].get('type') in ['Add', 'Multiply']:
print(layers[idx + 1].get('name'))#, layers[idx + 1].get('type'))
# Openvino==2022.2.0
import sys
import numpy as np
from openvino.runtime import Core
if len(sys.argv) < 3:
print("Please provide path to model xml file as a first arg and"
" path to output text file to dump model constants.")
@daniil-lyakhov
daniil-lyakhov / pruning_transformation.py
Created March 29, 2022 11:27
Openvino Pruning Transformation on IR
import sys
from openvino.frontend import FrontEndManager
from openvino.offline_transformations import apply_pruning_transformation
from openvino.runtime import serialize
print(f'input model path {sys.argv[1]} \n output model path {sys.argv[2]}.xml \n output model weights {sys.argv[2]}.bin')
input_model = sys.argv[1]
fem = FrontEndManager()
@daniil-lyakhov
daniil-lyakhov / inspect_ov_ir_weights.py
Created March 25, 2022 05:53
Way to inspect OpenVino IR model weights (openvino==2022.1.0)
# Openvino==2022.1.0
import sys
from openvino.runtime import Core
DELIMITER = ' | '
if len(sys.argv) < 3:
print("Please provide path to model xml file as a first arg and"
" path to output text file to dump model constants.")