Release Notes

This page features release notes for releases of PySDK. You may download PySDK versions listed here from PyPI.org

Release Notes

Version 0.18.2 (08/12/2025)

New Features and Modifications

Axelera runtime is now supported on ARM64 platforms.


Version 0.18.1 (08/11/2025)

New Features and Modifications

  1. New post-processor types are supported:

    • Null post-processor. This post-processor effectively disables all post-processing, which is useful for model bechmarking. The post-processor tag is "Null".

    • Dequantization post-processor. This post-processor performs dequantization of all integer-type output tensor results (compare it with None post-processor, which just returns all output tensor results as-is). The post-processor tag is "Dequantization".

  2. Verbosity of degirum token CLI commands is improved. Now all commands produce some confirmation message on completion.

Bug Fixes

  1. When cloud API token with unlimited lifetime is installed in PySDK using degirum token install CLI command, the following dg.connect() call raises error "Invalid isoformat string".


Release Notes

Version 0.18.0 (08/05/2025)

New Features and Modifications

  1. degirum token command tree has been added to PySDK CLI. Using these commands you can manage cloud access API tokens in PySDK. You can install existing token into PySDK internal storage, you can create and install new token, you can query the status of the currently installed token, you can renew currently installed token, when it is expired, and you can delete currently installed token from the PySDK internal storage. The PySDK internal storage is arranged as JSON file in user-specific directory: %APPDATA%\DeGirum for Windows and ~/.local/share/DeGirum for Linux/MacOS. The following commands are supported:

    • degirum token status: prints the status of the currently installed token. If Internet connection is available, it queries the most current token status from the DeGirum AI Hub otherwise it prints latest known token status.

    • degirum token install --token <token string>: installs the provided token into the PySDK internal storage. You need to obtain the token string from DeGirum AI Hub Web GUI.

    • degirum token create: opens automatic token creation URL in your default browser (when available) or prints this URL into console. Using provided URL you need to authenticate in DeGirum AI Hub. Meanwhile, PySDK CLI will wait until you open provided URL and authenticate in DeGirum AI Hub. Once authenticated, the new token with 2-week expiration will be created automatically, and PySDK CLI will pick it up and install into PySDK internal storage.

    • degirum token renew: renews currently installed token. Renewal happens even if the token is already expired. Renewed token is then installed into the PySDK internal storage replacing the currently installed token.

    • degirum token clear: removes the currently installed token from the PySDK internal storage. It does not delete the token from the AI Hub.

  2. degirum.connect function now tries to use currently installed token, if no token is provided as token argument (see degirum token CLI description above). It will try to renew this token automatically if it is about to be expired or already expired. This feature is intended to simplify the token handling in PySDK, when you install the time-limited token once, using PySDK CLI, and then use it indefinitely on this system from all your scripts.

  3. degirum install-runtime command tree has been added to PySDK CLI. Using these commands you can install third-party AI accelerator runtime libraries on your system greatly simplifying system housekeeping. The following commands are supported:

    • degirum install-runtime --list: list all runtimes available for installation. Using this command you may determine arguments for the following command.

    • degirum install-runtime <runtime> <version>: install particular version of particular runtime. You may specify ALL instead of the version number to install all supported versions of that runtime.

    • The following runtimes are supported for Linux Ubuntu/Debian OS in this release (more runtimes will be supported in the future releases):

      Designator
      Runtime
      Versions

      akida

      Brainchip Akida runtime

      2.11.0

      axelera

      Axelera Voyager runtime

      1.3.3

      memryx

      MemryX runtime

      1.2.3-1

      onnx

      ONNX runtime

      1.20.1

      openvino

      Intel OpenVINO runtime

      2024.6.0, 2024.2.0, 2023.3.0

      rknn

      Rockchip RKNN runtime

      2.3.0

  4. HAILO runtime agent now supports HAILORT runtime version 4.22.

  5. Axelera runtime agent now supports Voyager SDK runtime version 1.3.3.

  6. Preprocessing functionality for Whisper models is implemented for audio preprocessor. The InputType model parameter value for such models is Audio. The audio preprocessor distinguishes Whisper models by combination of InputFrameSize equal to 400 and InputFrameHopStepSize equal to 160.

  7. Now degirum.connect() checks the cloud token and cloud zoo validity for non-public zoo access. If you pass an empty or incorrect token, you will get an error "Unable to connect to server hub.degirum.com: your cloud API access token is not valid". If you pass correct token, but the cloud zoo does not exist or not accessible to you, the you will get an error "Cloud model zoo '<space>/<zoo>' either does not exist or you do not have access to it."

  8. When calling degirum.connect(degirum.LOCAL) function to connect for local inference with an empty string passed as zoo_url argument, the error "ZooManager: incorrect local model zoo URL" is raised. In previous releases empty zoo_url argument led to local zoo selection in the current working directory causing a lot of confusion.

Bug Fixes

  1. Multiple bug fixes of intermittent failures of ORCA USB accelerator inferences.


Version 0.17.3 (07/15/2025)

Bug Fixes

Automatic reconnect on critical error functionality in the cloud inference protocol has been broken due to recent changes in this protocol made in 0.17.2 release.


Version 0.17.2 (07/14/2025)

New Features and Modifications

  1. Axelera AI accelerators are initially supported for Linux OS. The runtime/device designator for these devices is "AXELERA/METIS".

  2. DEEPX runtime inference performance is improved by avoiding extra memory copy of inference result tensors.

Bug Fixes

  1. Frequent websocket disconnects happen during streaming cloud inferences in PySDK, significantly reducing streaming frame rate. This bug was due to the race condition in the websocket-client package used by python-socketio synchronous client. Now PySDK uses python-socketio asynchronous client, which does not use websocket-client package.


Version 0.17.1 (06/25/2025)

New Features and Modifications

  1. ONNX runtime agent now supports ONNX runtime version 1.20.1.

Bug Fixes

  1. Hailo models with hardware accelerated NMS layer did not work with PySDK and HailoRT ver. 4.21. Now this bug is fixed.

  2. Once the model is loaded by Hailo agent, it remembers model batch size and any attempt to change the batch size of already loaded model has no effect.


Version 0.17.0 (06/20/2025)

Known Issues

Hailo models with hardware accelerated NMS layer do not work with PySDK and HailoRT ver. 4.21. We recommend to use HailoRT ver. 4.20 for such models until the PySDK fix will be released in the next PySDK version.

New Features and Modifications

  1. Batching is supported for HailoRT runtime. You control the batch size via degirum.model.Model.eager_batch_size property. For single-context models (models which fully fit into accelerator memory) the Hailo runtime batch size is set to auto to improve performance, because such models do not benefit from batching. For multi-context models which do benefit from batching the Hailo runtime batch size is set equal to degirum.model.Model.eager_batch_size.

  2. DEEPX runtime version 2.9.5 is supported. This version supports production version of DEEPX M.2 accelerator card.

  3. Multi-device support was enabled for DEEPX runtime. Now PySDK can operate with multiple DEEPX M.2 accelerator cards.

  4. Models with built-in NMS layer are supported for HailoRT runtime.

  5. Maximum supported model parameters configuration version is increased from 10 to 11.

  6. The post-processor for DamoYolo models is implemented. The post-processor tag is "DetectionDamoYolo".

  7. Custom landmark shapes (other than 2) are supported in PoseDetectionYoloV8 post-processor. Now landmark key in detection results may contain coordinate list with more than 2 elements, for example [x,y,score].

  8. AI annotation renderers now support zero-size line width. You set it via degirum.model.Model.overlay_line_width property. When it is set to zero, no lines are drawn.

  9. The URL parsing logic of degirum.connect() is made more reliable. Now in the case of local inference or AI server inference the zoo URL is first checked is it a cloud zoo URL. The URL is considered as cloud zoo URL if it starts with http:// or https:// scheme or it contains exactly one slash like workspace/zoo. Only if provided URL does not look like cloud zoo URL it is then checked is it local zoo URL.

    • In the case of local inference it is checked is it a valid local path; and if it is not, then the error message "incorrect local model zoo URL: path does not exist" is raised. You may use explicit file:// scheme for local paths.

    • In the case of AI server inference it is considered as local model zoo URL if it is empty string or it starts with aiserver:// scheme. Otherwise the error "incorrect cloud model zoo URL" is raised.

  10. Runtime plugin loading whitelist is implemented. The list of runtime plugins allowed to load can be specified in DG_PLUGINS_ALLOWED environment variable using the following syntax: plugin prefixes separated by any non alphanumeric separator. For example: DG_PLUGINS_ALLOWED=n2x_runtime_agent;onnx_runtime_agent. When DG_PLUGINS_ALLOWED is not defined, all plugins will be loaded as before.

Bug Fixes

  1. When there is no connection to the cloud zoo, the model from AI server model zoo cache can be loaded without token authorization.


Version 0.16.2 (05/09/2025)

New Features and Modifications

  1. C++ SDK example has been modified to support inference of models from cloud zoos.

  2. HAILO runtime agent now supports HAILORT runtime version 4.21.

  3. MEMRYX runtime agent is supported on Windows 10/11 OS.

  4. TENSORRT runtime agent is supported on Windows 10/11 OS.

  5. Dequantization post-processor is implemented. This post-processor performs dequantization of model output tensors according to model dequantization settings for those tensors. The post-processor tag is "Dequantization".

  6. New InferenceResultsType model parameter is added. This model parameter specifies objects of which PySDK result class (a class derived from InferenceResults base class) will be returned as inference results. When the InferenceResultsType model parameter is not defined then the OutputPostprocessType model parameter is used instead, as before. Please note that in previous releases the OutputPostprocessType model parameter was used for both selecting which Core-level post-processor is applied to the model output tensors and objects of what PySDK result class to return as inference results. Having separate parameter to select PySDK result class allows flexibility of matching different Core-level post-processors with different PySDK result classes. For example, "Dequantization" Core-level post-processor can be used with "Classification" PySDK result class.

  7. degirum.inference_results_type model property is added to control InferenceResultsType model parameter in run-time.

  8. degirum.get_inference_results_class method is added to return PySDK result class which objects are returned as inference results for this

  9. degirum postprocessor.register_postprocessor function is added. It registers your own PySDK result class for a specific inference result type (as defined by InferenceResultsType model parameter, see above). This function accepts two arguments: inference result type string and PySDK result class. PySDK result class must inherit degirum postprocessor.InferenceResults base class. Once your class is registered, objects of this class will be returned as inference results for models with InferenceResultsType model parameter equal to the inference result type string you passed when calling register_postprocessor function. This allows developing new custom PySDK result classes and seamlessly integrating them into PySDK.

Bug Fixes

  1. Various error messages appear when trying to do inference of more than 32 different models using HAILORT runtime agent on a single Hailo accelerator device.

  2. Inference multiplexing on all available devices was not performed for the TFLITE and OPENVINO runtime agents: only single device with index 0 was always used. This bug was introduced in ver. 0.16.0.


Version 0.16.1 (04/29/2025)

New Features and Modifications

MemryX runtime agent now supports MemryX runtime version 1.2.

Bug Fixes

TensorRT runtime agent failed to run inferences on DLA devices producing "Cuda failure: invalid device ordinal" error.


Version 0.16.0 (04/17/2025)

New Features and Modifications

  1. DEEPX AI accelerators are initially supported for Linux OS. The runtime/device designator for these devices is "DEEPX/M1A".

    NOTE: due to current limitations of DEEPX runtime the number of supported devices is limited to one.

  2. Error handling is improved for Hailo runtime agent: now all errors reported by HailoRT runtime are treated as critical.

  3. TensorRT runtime agent performance is improved due to implementation of asynchronous pipelined inference.

  4. Hailo runtime agent is supported on Windows 10/11 OS.

  5. postprocess_type keyword argument is added to degirum.zoo_manager.ZooManager.list_models method. It allows filtering models by post-processor type. Possible values for this argument are: "Classification", "Detection", "Segmentation" etc. They correspond to OutputPostprocessType model parameter values.

Bug Fixes

  1. Oriented bounding box post-processor incorrectly interpreted rotation angle tensors for certain OBB models, which led to the error message "Execution failed. Condition '<N1> == <N2>' is not met".


Version 0.15.4 (03/20/2025)

New Features and Modifications

  1. Oriented bounding box renderer now shows labels at the corner of rotated box.

  2. More stringent security checks are implemented when running Python post-processors in AI server.

Bug Fixes

  1. Segmentation renderer works incorrectly for models with non-square (rectangular) inputs.


Version 0.15.3 (03/13/2025)

New Features and Modifications

  1. ORCA USB performance improvements are implemented.

  2. ORCA USB stability improvements are implemented.


Version 0.15.2 (02/25/2025)

New Features and Modifications

  1. The post-processor for YOLOV8 Oriented Bounding Box (OBB) detection models is implemented. The post-processor tag is "DetectionYoloV8OBB". This complements the release of OBB model results drawing made in version 0.15.1.

  2. DLA_FALLBACK device type for TENSORRT runtime is renamed to DLA. Former DLA device type is deprecated and removed. Now DLA device type refers to an inference mode where the inference is conducted mainly on Deep Learning Accelerator (DLA) hardware with GPU fallback enabled.

Bug Fixes

  1. The following error message appears when making simultaneous inference of two or more models using Hailo Runtime: "HailoRT Runtime Agent: Failed to configure infer model, status = HAILO_INVALID_OPERATION".


Version 0.15.1 (02/21/2025)

New Features and Modifications

  1. PySDK cloud inference now performs automatic reconnection to the cloud inference server in case of critical errors. This greatly improves robustness of cloud inference in case of inference node failures: after reconnection the cloud inference server assigns another healthy node for the inference, while PySDK retries the inference of not yet processed frames on that new node.

  2. YOLO Detection postprocessor now supports models with no grid tensors and separate detection heads.

  3. image_overlay method of PySDK detection post-processor now supports drawing of oriented bounding box (OBB) model results. OBB detection results have additional "angle" key in the result dictionary for each detected object, which specifies the bounding box rotation angle in radians in clockwise direction.

Bug Fixes

  1. The error message "The input shape parameter InputShape for input #0 must have 4 elements, while it has <N>" is produced for models with tensor input type.

  2. degirum.list_models and degirum.zoo_manager.ZooManager.list_models methods did not filter out models not compatible with the connected inference engine for cloud model zoos when invoked with empty device, runitime or device_type arguments.

  3. Multiple fixes for Hailo runtime agent:

    • added support for additional tensor format orders introduced in HailoRT 4.20: models with NMS layers caused crashes in the previous release;

    • Hailo multi-process_service is used for inferences by default if it is running, otherwise local inference mode is used;

    • default page alignment for data buffers is changed from 4KB to 16KB to avoid errors on systems with 4KB PCI page settings.

  4. Multiple fixes for Brainchip Akida runtime agent:

    • updated device names to uppercase (e.g., NSoC_v1 → NSOC_V1);

    • implemented validation of input/output dimensions during model loading to provide clear error reporting.


Version 0.15.0 (01/30/2025)

New Features and Modifications

  1. Starting from this version, PySDK is not supported for Python 3.8.

  2. MemryX AI accelerators are initially supported for Linux OS. The runtime/device designator for these devices is "MEMRYX/MX3". Please refer to installation instructions for installation details.

  3. BrainChip AI accelerators are initially supported for Linux OS for Akida Runtime version 2.11.0. The runtime/device designators for these devices are "AKIDA/NSoC_v1", "AKIDA/NSoC_v2", "AKIDA/AKD1500_v1". Please refer to installation instructions for installation details.

  4. Device selection by device index is implemented for Hailo runtime agent. Now you can Hailo device(s) to be used for inference regular way by assigning degirum.model.Model.devices_selected property of your model object.

  5. ONNX runtime agent now supports ONNX runtime version 1.19.0 and prints the version in degirum sys-info command output.

  6. RKNN runtime agent now supports RKNN runtime version 2.3.0.

  7. OPENVINO runtime agent now supports OPENVINO runtime version 2024.6.0.

  8. HAILO runtime agent now supports HAILORT runtime version 4.20.

  9. The post-processor for YOLOV8 license place detection models is implemented. The post-processor tag is "DetectionYoloV8Plates".

  10. Error messages generated by Python post-processors now include the filename and line number where the error occurs. This should simplify debugging of Python post-processor code.

Bug Fixes

  1. degirum.connect performance is greatly improved for large cloud zoos. In the previous versions the whole content of the cloud zoo with all model parameters is downloaded from the cloud server. With 1000+ models public model zoo this process may take few seconds with slow Internet connection. Now the model parameters are downloaded on-demand, and degirum.connect downloads only model names.


Version 0.14.3 (12/26/2024)

New Features and Modifications

  1. Added support of OpenVINO version 2024.6.0.

  2. Added support of Intel Arc GPUs on Windows for OpenVINO runtime.

  3. Dropped support for OpenVINO versions 2022.1.1, 2023.2.0.

  4. InputShape model configuration parameter is supported for models with "Image" input type. Now you may specify input tensor shape in one line "InputShape": [<N>, <H>>, <W>, <C>] instead of providing four lines with four InputN/H/W/C individual parameters.

  5. Default values for the following model configuration parameters are changed:

    Model Parameter
    Old Default
    New Default

    OutputConfThreshold

    0.1

    0.3

    MaxDetections

    20

    100

    MaxClassesPerDetection

    30

    1

  6. Maximum supported model parameters configuration version is increased from 9 to 10.

  7. Separate output for pose keypoint heads is supported in pose detection post-processor.

  8. YOLOv8 instance segmentation post-processor is integrated.

Bug Fixes

  1. Numerous critical bugs have been fixed in Hailo runtime plugin.

    Note: For Hailo plugin users it is strongly recommended to upgrade PySDK to version 0.14.3

  2. The following error may appear intermittently on systems NOT equipped with ORCA USB: "libusb: error [cache_config_descriptors] could not access configuration descriptor 0 (actual) for 'USB\VID_0627&PID_0001***': [995] The I/O operation has been aborted because of either a thread exit or an application request."

  3. AI Server configured with HTTP protocol may crash intermittently with Access-Violation/SEGFAULT error when model inference with erroneous configuration is requested.


Version 0.14.2 (12/16/2024)

New Features and Modifications

  1. Hailo AI accelerators are initially supported for Linux OS. The runtime/device designator for these devices are "HAILORT/HAILO8" and "HAILORT/HAILO8L". Please refer to installation instructions for installation details.

  2. TensorRT runtime agent changes:

    • supported TensorRT version is updated from 8.5 to 10.6;

    • added support for x86-64 architecture.

  3. ORCA1 firmware version 1.1.22 is included in this release. It contains numerous bug fixes targeted to improve reliability of ORCA1 USB operation.

  4. Pose detection postprocessor now supports models with multiple classes.

Bug Fixes

  1. Various bug fixes related to ORCA1 USB device operation.

  2. AI server memory monitoring of Python postprocessor execution sometimes gives false-positives and prevents normal execution of Python postprocessors.


Version 0.14.1 (11/04/2024)

New Features and Modifications

  1. ORCA1 firmware version 1.1.21 is included in this release. It contains numerous bug fixes targeted to improve reliability of ORCA1 USB operations.

  2. Object blurring option is implemented in PySDK object detection results renderer. To control blurring you use degirum.model.Model.overlay_blur property of the Model class.

    • Assign None to disable blurring (this is the default value): model.overlay_blur = None.

    • To enable blurring of all detected bounding boxes, assign "all" string : model.overlay_blur = "all".

    • To enable blurring of bounding boxes belonging to a particular class, assign that class label string: : model.overlay_blur = "car".

    • To enable blurring of bounding boxes belonging to particular class list, assign a list of class label strings: model.overlay_blur = ["car", "person"].

  3. YOLOv8 postprocessor now supports both normalized and regular bounding boxes. It automatically infers that the boxes are normalized or not, and if they are normalized to unity, the boxes are adjusted to the images size. Note that the box outputs are typically normalized for TFLite models, while ONNX models usually do not provide normalization.

Bug Fixes

  1. The error message similar to this "Shape of tensor passed as the input #0 does not match to model parameters. Expected tensor shape is (1, 0, 0, 77)" appears when performing AI server inference of a model with Tensor input type of fewer than 4 dimensions, when those dimensions are specified using InputN/InputW/InputH/InputC model parameters, for example, InputN: 1, InputC: 77. The error does not appear when dimensions are specified using InputShape model parameter.


Version 0.14.0 (10/13/2024)

New Features and Modifications

  1. ORCA1 firmware version 1.1.19 is included in this release. It contains numerous bug fixes targeted to improve reliability of ORCA1 operation.

  2. Robust and secure Python postprocessor execution framework is implemented for AI server. Now all Python postprocessor code is executed in separate process pool in sandboxed environments as opposed to in-process execution in previous PySDK versions.

  3. Device validation is implemented when you try to load a model from a cloud model zoo and the inference device requested by that model is not available. In such case the following exception is raised: "Model '{model}' does not have any supported runtime/device combinations that will work on this system."

  4. timing attribute is added to the inference result base class degirum.postprocessor.InferenceResults. This attribute is populated with the inference timing information when degirum.model.Model.measure_time property is set to True. The inference timing information is represented as a dictionary with the same keys as returned by degirum.model.Model.time_stats() method.

Bug Fixes

  1. degirum.model.Model.output_class_set class label filtering is not applied when any degirum_tools analyzers are attached to the model object by degirum_tools.attach_analyzers().

  2. Significant (100x) performance drop of TFLITE/CPU model inference when more than one virtual CPU device is selected for the inference (which is default condition).


Last updated

Was this helpful?