eliminate broadcast node in masked_fill (#19595)

This commit is contained in:
Xiuchuan Zhai 2023-09-05 14:36:30 +08:00 committed by GitHub
parent 4eadef9e61
commit 1b5f428752
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -23,14 +23,12 @@ OutputVector translate_masked_fill(const NodeContext& context) {
auto data = context.get_input(0);
auto mask = context.get_input(1);
auto value = context.get_input(2);
auto data_shape = context.mark_node(std::make_shared<v3::ShapeOf>(data, element::i32));
value = context.mark_node(std::make_shared<v1::ConvertLike>(value, data));
auto broadcasted_value = context.mark_node(std::make_shared<v3::Broadcast>(value, data_shape));
auto bool_mask = context.mark_node(std::make_shared<v0::Convert>(mask, element::boolean));
return {context.mark_node(std::make_shared<v1::Select>(bool_mask, broadcasted_value, data))};
return {context.mark_node(std::make_shared<v1::Select>(bool_mask, value, data))};
};
} // namespace op
} // namespace pytorch
} // namespace frontend
} // namespace ov
} // namespace ov