Skip to content

Unable to export YOLOv8 model using aidge_export_cpp

I am trying to export Yolov8 model. My code is given below

import aidge_core
import aidge_onnx
import aidge_export_cpp
import numpy as np

model = aidge_onnx.load_onnx("yolov8n.onnx")

aidge_core.expand_metaops(model, recursive=True)


model.set_datatype(aidge_core.dtype.float32)
model.set_backend("cpu")


model.compile("cpu", aidge_core.dtype.float32, dims=[[1,3,640,640]])

scheduler = aidge_core.SequentialScheduler(model)

scheduler.generate_scheduling()

aidge_core.export_utils.scheduler_export(
        scheduler,
        "myexport",
        aidge_export_cpp.ExportLibCpp,
        memory_manager=aidge_core.mem_info.generate_optimized_memory_info,
        memory_manager_args={"stats_folder": "myexport/stats", "wrapping": False }
)

But I am getting this error

[ERROR] - Assertion failed: requiredSize.type == Elts_t::Data in C:\Users\usajid\Desktop\Eclipse   
[ERROR]   Aidge 2\aidge_core\src\scheduler\SequentialScheduler.cpp:62
[FATAL] - Cannot generate memory with token-based producer-consumer model for node model_2_Split (of
[FATAL]   type Split). You may need to forward dimensions in the graph first.
Traceback (most recent call last):
  File "C:\Users\usajid\Desktop\Eclipse Aidge Project\yolov8n_export_c++.py", line 22, in <module> 
    aidge_core.export_utils.scheduler_export(
  File "C:\Users\usajid\Desktop\Eclipse Aidge 2\aidge_core\aidge_core\export_utils\scheduler_export.py", line 70, in scheduler_export
    peak_mem, mem_info = memory_manager(
                         ^^^^^^^^^^^^^^^
  File "C:\Users\usajid\Desktop\Eclipse Aidge 2\aidge_core\aidge_core\mem_info.py", line 148, in generate_optimized_memory_info
    mem_manager = scheduler.generate_memory(
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^
RuntimeError: Cannot generate memory with token-based producer-consumer model for node model_2_Split (of type Split). You may need to forward dimensions in the graph first.

Can anyone guide me how can i fix this issue?