Skip to content

Improve export

Olivier BICHLER requested to merge imp_export into dev

Miscellaneous fixes and changes to robustify the exports, which will fix aidge_export_cpp#32 (closed) and aidge_onnx#64 (closed).

  • Fixed I/O order handling in scheduler_export();
  • Handle data format: remove hugly transpose fix in Producer export;
  • Handle data format: remove format trick in FC kernel;
    • Support both Default/NCHW and NHWC format in two FC kernels;
    • Added a recipe to automatically transpose the weights during export if possible.
  • Make data format a "weak" property of tensors:
    • By default, data format change is ignored if the tensor dimension does not match the format;
    • When tensors are resized, if the tensor new dimension does not match the format, it is reset to Default.
  • Improved display of GraphView::save() to display type and format even when the tensor is undefined.
  • Handle optional outputs:
    • Allow to remove graph outputs with GraphView::setOrderedOutputs();
    • Take it into account during export;
    • Make adaptToBackend() comply with that;
    • Loaded ONNX graph outputs are conformant to ONNX outputs (no extra outputs are added anymore);
    • Recipes ExpandMetaOp(s) and AdaptToBackend do not introduce new outputs anymore.
  • Handle multi-precision:
    • Memory manager now handles bytes instead of words;
    • Memory is allocated in bytes;
    • Added support for memory alignment, with a default memory alignment of 16 bytes (adapted up to 64-bits systems);
    • Export memory array is now always of type unsigned char.
  • Enforce loaded ONNX model data format to NCHW;
  • Added NHWC format support in forwardDims() for Pad operator;
  • Add result values checks in lenet.py;
  • AdaptToBackend should not rename existing nodes (@axelfarr);
  • Fixed createUniqueName() should never return an empty name;
  • Fixed #279 (closed) with an assert.
Edited by Olivier BICHLER

Merge request reports

Loading