Unify unconverted ops reporting in frontends#33710
Unify unconverted ops reporting in frontends#33710mvafin merged 1 commit intoopenvinotoolkit:masterfrom
Conversation
There was a problem hiding this comment.
Pull request overview
This PR unifies unconverted operations reporting across all frontends by introducing a common error reporting infrastructure. Previously, each frontend (TensorFlow, TensorFlow Lite, PyTorch, ONNX, JAX, and Paddle) implemented its own error collection and reporting logic with inconsistent formats and behaviors.
Changes:
- Introduced a centralized unconverted ops reporting mechanism in
openvino/frontend/unconverted_ops_report.hpp - Refactored all frontends to use the unified reporting API
- Removed duplicated error reporting code from individual frontends
Reviewed changes
Copilot reviewed 10 out of 10 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| src/frontends/common/include/openvino/frontend/unconverted_ops_report.hpp | New header defining the unified API for unconverted ops reporting |
| src/frontends/common/src/unconverted_ops_report.cpp | Implementation of the unified reporting infrastructure |
| src/frontends/tensorflow_lite/src/frontend.cpp | Migrated to use unified reporting API |
| src/frontends/tensorflow/src/frontend.cpp | Refactored to use unified reporting with custom TensorFlow-specific hints |
| src/frontends/pytorch/src/frontend.cpp | Replaced custom error collection with unified API |
| src/frontends/paddle/src/frontend.cpp | Updated to use unified reporting mechanism |
| src/frontends/onnx/frontend/src/frontend.cpp | Migrated from custom collect_translation_exceptions to unified API |
| src/frontends/onnx/frontend/src/utils/common.hpp | Removed old collect_translation_exceptions declaration |
| src/frontends/onnx/frontend/src/utils/common.cpp | Removed old collect_translation_exceptions implementation |
| src/frontends/jax/src/frontend.cpp | Replaced custom error reporting with unified API |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
0c37a49 to
46b9e3b
Compare
c5a3d51 to
3b47a65
Compare
3b47a65 to
2c1b35f
Compare
2c1b35f to
5d3b9bd
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 20 out of 20 changed files in this pull request and generated no new comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| /// Map of operation types with no conversion rule (op_type -> empty string) | ||
| /// or operations that failed during conversion (op_type -> error message) | ||
| struct UnconvertedOpsReport { | ||
| std::map<std::string, std::string> unconverted_ops; |
There was a problem hiding this comment.
| std::map<std::string, std::string> unconverted_ops; | |
| std::unordered_map<std::string, std::string> unconverted_ops; |
|
|
||
| for (const auto& node : model->get_ordered_ops()) { | ||
| // Try framework-specific extractor first | ||
| if (auto result = extractor(node)) { |
There was a problem hiding this comment.
| if (auto result = extractor(node)) { | |
| if (const auto& result = extractor(node)) { |
| error_msg << "Model wasn't fully converted."; | ||
| unconverted_ops_msg << "-- No conversion rule found for operations: "; | ||
| failed_ops_msg << " Failed operations detailed log:"; | ||
| failed_ops_short << "-- Conversion is failed for: "; |
There was a problem hiding this comment.
Don't we impact telemetry mechanism that collect fails and separate into FEs by [FW_NAME]?
There was a problem hiding this comment.
No, that message is not processed by telemetry. The telemetry logic is preserved
|
|
||
| bool has_unsupported = false; | ||
| bool has_failed = false; | ||
| std::set<std::string> unsupported_ops_set; |
There was a problem hiding this comment.
| std::set<std::string> unsupported_ops_set; | |
| std::unordered_set<std::string> unsupported_ops_set; |
acffc4a
### Details: - *Each frontend build its own error reporting, make it unified* ### Tickets: - *ticket-id*
Details:
Tickets: