Skip to content

PySDK 0.9.0

Release Date: 07/25/2023

IMPORTANT: This release has changes in PySDK API

New Features and Modifications

  1. AI models of YOLOv8 family are initially supported.

  2. The possibility to define and install custom post-processor is implemented: degirum.model.Model.custom_postprocessor property is added for that purpose.

    When you want to work with some new AI model and PySDK does not yet provide post-processor class to interpret model results, then you may want to implement that post-processing code yourself.

    Such code typically takes the AI model output tensor data and interprets that raw tensor data to produce some meaningful results like bounding boxes, probabilities, etc. Then it renders these results on a top of original image to produce so-called image overlay.

    Starting from version 0.9.0, PySDK provides a way to seamlessly integrate such custom post-processing code so it will behave exactly like built-in post-processors. To do so, you need to complete the following two steps:

    1. Implement your own custom post-processor class.
    2. Instruct AI model object to use your custom post-processing class instead of built-in post-processor by assigning your new custom post-processor class to degirum.model.Model.custom_postprocessor property.

    Please refer to PySDK User Guide 0.9.0 for more details.

  3. Maximum size limit for AI model runtime in-memory cache is implemented. When the total size of all loaded AI models exceeds this limit, least recently used models are evicted from that cache.

  4. PySDK model filtering functionality (used in degirum.zoo_manager.ZooManager.list_models method and download-zoo CLI command) is modified to deal with quantized models. Before, it analyzed ModelQuantEn model parameter. Now it looks for quant or float suffixes in the model name. This is done to address the problem, when models which are internally quantized, have floating-point input/output tensors, and ModelQuantEn model parameter for such models is set to false.

Bug Fixes

  1. Concurrent access to Orca accelerator devices from multiple processes results in segmentation fault.

    Steps to reproduce:

    1. Start AI server on a system equipped with Orca accelerator device
    2. Run Python script, which performs AI inference of any Orca AI model on AI server at localhost: zoo = dg.connect('localhost', ...)
    3. Then run Python script, which performs AI inference of any Orca AI model directly on hardware: zoo = dg.connect(dg.LOCAL, ...)
    4. Then repeat step b.