class ov::pass::ShuffleChannelsFusion¶
Overview¶
ShuffleChannelsFusion transformation detects Reshape-Transpose-Reshape pattern and tries to fuse it into a single ShuffleChannels layer with axis = 1. More…
#include <shuffle_channels_fusion.hpp>
class ShuffleChannelsFusion: public ov::pass::MatcherPass
{
public:
// construction
ShuffleChannelsFusion();
// methods
"ShuffleChannelsFusion""0" OPENVINO_RTTI(, );
};
Inherited Members¶
public:
// typedefs
typedef DiscreteTypeInfo type_info_t;
// methods
boolconst PassPropertyMask& get_property() const;
voidconst std::string& set_name();
std::string get_name() const;
voidconst param_callback& set_callback();
virtual voidconst std::shared_ptr<PassConfig>& set_pass_config();
std::shared_ptr<PassConfig> get_pass_config();
boolconst std::shared_ptr<const Node>& transformation_callback();
virtual const type_info_t& get_type_info() const = 0;
"ov::pass::MatcherPass" OPENVINO_RTTI();
MatcherPass&const MatcherPass& operator = ();
boolstd::shared_ptr<ov::Node> apply();
template <, >
std::shared_ptr<T>Args&&... register_new_node();
template <>
std::shared_ptr<T>const std::shared_ptr<T>& register_new_node();
std::shared_ptr<ov::Node>const std::shared_ptr<ov::Node>& register_new_node_();
const std::vector<std::shared_ptr<ov::Node>>& get_new_nodes();
void clear_new_nodes();
std::shared_ptr<pattern::Matcher> get_matcher();
Detailed Documentation¶
ShuffleChannelsFusion transformation detects Reshape-Transpose-Reshape pattern and tries to fuse it into a single ShuffleChannels layer with axis = 1.
x’ = reshape(x, [N, group, C / group, H, W]) or reshape(x, [N, group, C / group, H * W]) x’’ = transpose(x’, [0, 2, 1, 3, 4]) or transpose(x’, [0, 2, 1, 3]) y = reshape(x’’, [N, C, H, W])
Parameters:
reshape_constants_check |
the flag that defines the need for additional checks of reshapes constant Additional checks are required when ShuffleChannelsFusion using inside offline transformations and are not necessary when ShuffleChannelsFusion using inside CommonOptimizations |