[FrontEnds]: Fix build issue on Win platforms (#9274)
* include place.hpp into input_model.hpp * resolve issues in api validator * set full namespaces for Place::Ptr in input_model
This commit is contained in:
@@ -79,8 +79,20 @@ function(_ie_add_api_validator_post_build_step)
|
||||
_ie_add_api_validator_post_build_step_recursive(TARGET ${API_VALIDATOR_TARGET})
|
||||
|
||||
# remove targets which were tested before
|
||||
|
||||
foreach(item IN LISTS VALIDATED_LIBRARIES)
|
||||
foreach(target IN LISTS API_VALIDATOR_TARGETS)
|
||||
list(FIND VALIDATED_LIBRARIES ${target} index)
|
||||
if (NOT index EQUAL -1)
|
||||
list(APPEND VALIDATED_TARGETS ${target})
|
||||
endif()
|
||||
if(TARGET "${target}")
|
||||
get_target_property(orig_target ${target} ALIASED_TARGET)
|
||||
list(FIND VALIDATED_LIBRARIES ${orig_target} index)
|
||||
if (NOT index EQUAL -1)
|
||||
list(APPEND VALIDATED_TARGETS ${target})
|
||||
endif()
|
||||
endif()
|
||||
endforeach()
|
||||
foreach(item IN LISTS VALIDATED_TARGETS)
|
||||
list(REMOVE_ITEM API_VALIDATOR_TARGETS ${item})
|
||||
endforeach()
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ InputModel::InputModel(std::istream& model_stream,
|
||||
|
||||
std::vector<ov::frontend::Place::Ptr> InputModel::get_inputs() const {
|
||||
const auto& inputs = m_editor->model_inputs();
|
||||
std::vector<Place::Ptr> in_places;
|
||||
std::vector<ov::frontend::Place::Ptr> in_places;
|
||||
in_places.reserve(inputs.size());
|
||||
for (const auto& input : inputs) {
|
||||
in_places.push_back(std::make_shared<PlaceTensor>(input, m_editor));
|
||||
@@ -49,7 +49,7 @@ std::vector<ov::frontend::Place::Ptr> InputModel::get_inputs() const {
|
||||
|
||||
std::vector<ov::frontend::Place::Ptr> InputModel::get_outputs() const {
|
||||
const auto& outputs = m_editor->model_outputs();
|
||||
std::vector<Place::Ptr> out_places;
|
||||
std::vector<ov::frontend::Place::Ptr> out_places;
|
||||
out_places.reserve(outputs.size());
|
||||
for (const auto& output : outputs) {
|
||||
out_places.push_back(std::make_shared<PlaceTensor>(output, m_editor));
|
||||
@@ -90,13 +90,13 @@ ov::frontend::Place::Ptr InputModel::get_place_by_operation_name_and_output_port
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
void InputModel::set_name_for_tensor(Place::Ptr tensor, const std::string& new_name) {
|
||||
void InputModel::set_name_for_tensor(ov::frontend::Place::Ptr tensor, const std::string& new_name) {
|
||||
const auto onnx_tensor = std::dynamic_pointer_cast<PlaceTensor>(tensor);
|
||||
FRONT_END_GENERAL_CHECK(onnx_tensor, __FUNCTION__, " expects a pointer to place of ONNX tensor type.");
|
||||
onnx_tensor->set_name(new_name);
|
||||
}
|
||||
|
||||
void InputModel::set_name_for_operation(Place::Ptr operation, const std::string& new_name) {
|
||||
void InputModel::set_name_for_operation(ov::frontend::Place::Ptr operation, const std::string& new_name) {
|
||||
const auto onnx_operation = std::dynamic_pointer_cast<PlaceOp>(operation);
|
||||
FRONT_END_GENERAL_CHECK(onnx_operation, __FUNCTION__, " expects a pointer to place of ONNX operation type.");
|
||||
onnx_operation->set_name(new_name);
|
||||
@@ -106,13 +106,15 @@ void InputModel::free_name_for_operation(const std::string& name) {
|
||||
m_editor->clear_nodes_name(name);
|
||||
}
|
||||
|
||||
void InputModel::set_name_for_dimension(Place::Ptr tensor, size_t shape_dim_index, const std::string& dim_name) {
|
||||
void InputModel::set_name_for_dimension(ov::frontend::Place::Ptr tensor,
|
||||
size_t shape_dim_index,
|
||||
const std::string& dim_name) {
|
||||
const auto onnx_tensor = std::dynamic_pointer_cast<PlaceTensor>(tensor);
|
||||
FRONT_END_GENERAL_CHECK(onnx_tensor, __FUNCTION__, " expects a pointer to place of ONNX tensor type.");
|
||||
onnx_tensor->set_name_for_dimension(shape_dim_index, dim_name);
|
||||
}
|
||||
|
||||
void InputModel::add_name_for_tensor(Place::Ptr, const std::string&) {
|
||||
void InputModel::add_name_for_tensor(ov::frontend::Place::Ptr, const std::string&) {
|
||||
FRONT_END_THROW("Method add_name_for_tensor is not applicable for ONNX model. ONNX tensor has just one name.");
|
||||
}
|
||||
|
||||
@@ -120,17 +122,17 @@ void InputModel::free_name_for_tensor(const std::string&) {
|
||||
FRONT_END_THROW("Method free_name_for_tensor is not applicable for ONNX model. ONNX tensor name is an identifier.");
|
||||
}
|
||||
|
||||
void InputModel::set_partial_shape(Place::Ptr place, const ngraph::PartialShape& shape) {
|
||||
void InputModel::set_partial_shape(ov::frontend::Place::Ptr place, const ngraph::PartialShape& shape) {
|
||||
std::map<std::string, ngraph::PartialShape> m;
|
||||
m[place->get_names()[0]] = shape;
|
||||
m_editor->set_input_shapes(m);
|
||||
}
|
||||
|
||||
ngraph::PartialShape InputModel::get_partial_shape(Place::Ptr place) const {
|
||||
ngraph::PartialShape InputModel::get_partial_shape(ov::frontend::Place::Ptr place) const {
|
||||
return m_editor->get_tensor_shape(place->get_names().at(0));
|
||||
}
|
||||
|
||||
void InputModel::set_element_type(Place::Ptr place, const ngraph::element::Type& type) {
|
||||
void InputModel::set_element_type(ov::frontend::Place::Ptr place, const ngraph::element::Type& type) {
|
||||
std::map<std::string, ngraph::element::Type_t> m;
|
||||
m[place->get_names()[0]] = type;
|
||||
m_editor->set_input_types(m);
|
||||
@@ -145,19 +147,19 @@ std::shared_ptr<Model> InputModel::convert() {
|
||||
}
|
||||
|
||||
// Editor features
|
||||
void InputModel::override_all_outputs(const std::vector<Place::Ptr>& outputs) {
|
||||
void InputModel::override_all_outputs(const std::vector<ov::frontend::Place::Ptr>& outputs) {
|
||||
extract_subgraph({}, outputs);
|
||||
NGRAPH_CHECK(m_editor->model_outputs().size() == outputs.size(),
|
||||
"Unexpected number of outputs after override_all_outputs");
|
||||
NGRAPH_CHECK(std::all_of(std::begin(outputs),
|
||||
std::end(outputs),
|
||||
[](const Place::Ptr& place) {
|
||||
[](const ov::frontend::Place::Ptr& place) {
|
||||
return place->is_output();
|
||||
}),
|
||||
"Not all provided arguments of override_all_outputs are new outputs of the model");
|
||||
}
|
||||
|
||||
void InputModel::override_all_inputs(const std::vector<Place::Ptr>& inputs) {
|
||||
void InputModel::override_all_inputs(const std::vector<ov::frontend::Place::Ptr>& inputs) {
|
||||
const auto outputs_before_extraction = m_editor->model_outputs();
|
||||
extract_subgraph({inputs}, {});
|
||||
NGRAPH_CHECK(std::equal(std::begin(outputs_before_extraction),
|
||||
@@ -169,7 +171,8 @@ void InputModel::override_all_inputs(const std::vector<Place::Ptr>& inputs) {
|
||||
"Unexpected number of inputs after override_all_inputs");
|
||||
}
|
||||
|
||||
void InputModel::extract_subgraph(const std::vector<Place::Ptr>& inputs, const std::vector<Place::Ptr>& outputs) {
|
||||
void InputModel::extract_subgraph(const std::vector<ov::frontend::Place::Ptr>& inputs,
|
||||
const std::vector<ov::frontend::Place::Ptr>& outputs) {
|
||||
std::vector<onnx_editor::InputEdge> onnx_inputs;
|
||||
onnx_inputs.reserve(inputs.size());
|
||||
for (const auto& input : inputs) {
|
||||
|
||||
@@ -30,36 +30,39 @@ public:
|
||||
const std::shared_ptr<ov::frontend::TelemetryExtension>& telemetry = {});
|
||||
#endif
|
||||
|
||||
std::vector<Place::Ptr> get_inputs() const override;
|
||||
std::vector<Place::Ptr> get_outputs() const override;
|
||||
Place::Ptr get_place_by_tensor_name(const std::string& tensor_name) const override;
|
||||
Place::Ptr get_place_by_operation_name(const std::string& operation_name) const override;
|
||||
Place::Ptr get_place_by_operation_name_and_input_port(const std::string& operation_name,
|
||||
int input_port_index) override;
|
||||
Place::Ptr get_place_by_operation_name_and_output_port(const std::string& operation_name,
|
||||
int output_port_index) override;
|
||||
std::vector<ov::frontend::Place::Ptr> get_inputs() const override;
|
||||
std::vector<ov::frontend::Place::Ptr> get_outputs() const override;
|
||||
ov::frontend::Place::Ptr get_place_by_tensor_name(const std::string& tensor_name) const override;
|
||||
ov::frontend::Place::Ptr get_place_by_operation_name(const std::string& operation_name) const override;
|
||||
ov::frontend::Place::Ptr get_place_by_operation_name_and_input_port(const std::string& operation_name,
|
||||
int input_port_index) override;
|
||||
ov::frontend::Place::Ptr get_place_by_operation_name_and_output_port(const std::string& operation_name,
|
||||
int output_port_index) override;
|
||||
|
||||
void set_name_for_tensor(Place::Ptr tensor, const std::string& new_name) override;
|
||||
void set_name_for_operation(Place::Ptr operation, const std::string& new_name) override;
|
||||
void set_name_for_tensor(ov::frontend::Place::Ptr tensor, const std::string& new_name) override;
|
||||
void set_name_for_operation(ov::frontend::Place::Ptr operation, const std::string& new_name) override;
|
||||
void free_name_for_operation(const std::string& name) override;
|
||||
void set_name_for_dimension(Place::Ptr place, size_t shape_dim_index, const std::string& dim_name) override;
|
||||
void set_name_for_dimension(ov::frontend::Place::Ptr place,
|
||||
size_t shape_dim_index,
|
||||
const std::string& dim_name) override;
|
||||
|
||||
/// \brief Not applicable for ONNX model. Throws immediately
|
||||
void add_name_for_tensor(Place::Ptr tensor, const std::string& new_name) override;
|
||||
void add_name_for_tensor(ov::frontend::Place::Ptr tensor, const std::string& new_name) override;
|
||||
/// \brief Not applicable for ONNX model. Throws immediately
|
||||
void free_name_for_tensor(const std::string& name) override;
|
||||
|
||||
void set_partial_shape(Place::Ptr place, const ngraph::PartialShape& shape) override;
|
||||
ngraph::PartialShape get_partial_shape(Place::Ptr place) const override;
|
||||
void set_element_type(Place::Ptr place, const ngraph::element::Type& type) override;
|
||||
void set_partial_shape(ov::frontend::Place::Ptr place, const ngraph::PartialShape& shape) override;
|
||||
ngraph::PartialShape get_partial_shape(ov::frontend::Place::Ptr place) const override;
|
||||
void set_element_type(ov::frontend::Place::Ptr place, const ngraph::element::Type& type) override;
|
||||
|
||||
std::shared_ptr<Model> decode();
|
||||
std::shared_ptr<Model> convert();
|
||||
|
||||
// Editor features
|
||||
void override_all_outputs(const std::vector<Place::Ptr>& outputs) override;
|
||||
void override_all_inputs(const std::vector<Place::Ptr>& inputs) override;
|
||||
void extract_subgraph(const std::vector<Place::Ptr>& inputs, const std::vector<Place::Ptr>& outputs) override;
|
||||
void override_all_outputs(const std::vector<ov::frontend::Place::Ptr>& outputs) override;
|
||||
void override_all_inputs(const std::vector<ov::frontend::Place::Ptr>& inputs) override;
|
||||
void extract_subgraph(const std::vector<ov::frontend::Place::Ptr>& inputs,
|
||||
const std::vector<ov::frontend::Place::Ptr>& outputs) override;
|
||||
|
||||
private:
|
||||
std::shared_ptr<ov::onnx_editor::ONNXModelEditor> m_editor;
|
||||
|
||||
Reference in New Issue
Block a user