from ultralytics import YOLO
YOLO 모델 불러오기
model = YOLO(“/home/elicer/.pyenv/versions/3.8.20/lib/python3.8/site-packages/ultralytics/cfg/models/v8/yolov8n.pt”)
model.train(
data=“/home/elicer/custom_dataset.yaml”,
epochs=80,
imgsz=288,
batch=128,
lr0=0.01,
save_dir=“yolo_model_output”
)
yolo 학습후
import torch
from ultralytics import YOLO # YOLO 모델 로드
모델 로드
model_path = “/home/elicer/yolo_model_output/train114/weights/best.pt” # .pt 파일 경로
model = YOLO(model_path) # YOLO 모델 로드
model.model.eval() # 평가 모드로 전환
더미 입력 정의
dummy_input = torch.randn(1, 3, 288, 288) # 입력 데이터 (배치 크기, 채널, 높이, 너비)
ONNX 변환
onnx_path = “/home/elicer/yolo_model_output/yolo3_tiny_tune.onnx” # 변환 후 저장할 파일 경로
torch.onnx.export(
model.model, # PyTorch 모델
dummy_input, # 더미 입력 데이터
onnx_path, # 변환된 ONNX 파일 경로
export_params=True, # 모델 가중치 포함
opset_version=11, # ONNX opset 버전
do_constant_folding=True, # 상수 폴딩 최적화
input_names=[“input”], # 입력 노드 이름
output_names=[“output”], # 출력 노드 이름
dynamic_axes={“input”: {0: “batch_size”}, “output”: {0: “batch_size”}} # 동적 배치 크기 지원
)
print(f"ONNX 모델이 '{onnx_path}'에 저장되었습니다.")
onnx로 변환하고
from onnx.utils import extract_model 기능을 통해
다음 과 같이 만든후
python tools/gen_default_box_tools/default_box_generator.py
yolo_v8_practice_static.onnx
–output yolo_v8_practice_static.bin
–version v8
–grid-layer-name
/model.22/cv2.0/cv2.0.2/Conv_output_0
/model.22/cv2.1/cv2.1.2/Conv_output_0
/model.22/cv2.2/cv2.2.2/Conv_output_0 \
다음을 수행했습니다.
이후 두파일로
python ./EnlightSDK/converter.py input_networks/yolo_v8_practice_static_extracted.onnx --type obj --add-detection-post-process input_networks/yolo_v8_practice_static_1.bin --dataset Custom --dataset-root my_dataset_path --output ./output_network/yolo_v8_practice_static_extracted.enlight --num-class 11 --yolo-version v8 --output-order cl --dfl-reg-max 16 --enable-letterbox --mean 0 0 0 --std 1 1 1 --enable-track
진행하였는데
Traceback (most recent call last):
File “./EnlightSDK/converter.py”, line 668, in
main()
File “./EnlightSDK/converter.py”, line 644, in main
model = prepare_model(args)
File “./EnlightSDK/converter.py”, line 86, in prepare_model
add_detection_post_process(net, args)
File “./EnlightSDK/converter.py”, line 164, in add_detection_post_process
net.add_detection_post_process(grid_info, args.num_class,
File “”, line 1235, in add_detection_post_process
File “”, line 175, in init_grid
이런 오류가 계속 나서 놓친게 있나 여러번 해보았지만 계속 같은 오류가 나옵니다. 혹시 입력이미지가 지정돼있거나 그런 오류가 있나요?