openvinotoolkit/openvino

[Good First Issue]: Extend `PrePostProcessor` module with `Clamp`

Open

#24,996 创建于 2024年6月13日

在 GitHub 查看
 (16 评论) (0 反应) (1 负责人)C++ (3,229 fork)auto 404
good first issueno_stale

仓库指标

Star
 (10,286 star)
PR 合并指标
 (平均合并 14天 3小时) (30 天内合并 305 个 PR)

描述

Context

Some models require preprocessing done to the data before inference. Usually it's done with packages like numpy or pillow for images, but it adds dependencies and additional steps to the inference pipeline, not to mention that these steps may not be properly performant.

PrePostProcessor module allows users to define such preprocessing steps (also postprocessing if you need it), and then embed it into the graph. It not only fixes the issues mentioned above, but also allows OpenVINO graph transformations and performance improvements to take place, increasing overall inference performance.

Lately there has been a request for a new PrePostProcessor operation - Clamp: https://github.com/openvinotoolkit/openvino/issues/23001. The issue contains information relevant to the task, it's recommended to read it.

What needs to be done?

  1. Modify https://github.com/openvinotoolkit/openvino/blob/master/src/core/src/preprocess/pre_post_process.cpp to include Clamp operation. It should most likely be placed in PreProcessSteps section at https://github.com/openvinotoolkit/openvino/blob/master/src/core/src/preprocess/pre_post_process.cpp#L257.
  2. Add the implementation to https://github.com/openvinotoolkit/openvino/blob/master/src/core/src/preprocess/preprocess_steps_impl.cpp

The implementation is preferred to use existing OpenVINO operators - in this case we have a perfect operator for that: https://docs.openvino.ai/2024/documentation/openvino-ir-format/operation-sets/operation-specs/activation/clamp-1.html 3. Add tests to https://github.com/openvinotoolkit/openvino/blob/master/src/core/tests/preprocess.cpp

Example Pull Requests

Resources

Contact points

@p-wysocki

Ticket

N/A

贡献者指南